1. 15 4月, 2016 1 次提交
    • L
      conf/qemu: change the way VIR_PCI_CONNECT_TYPE_* flags work · d1cc4605
      Laine Stump 提交于
      The flags used to determine which devices could be plugged into which
      controllers were quite confusing, as they tried to create classes of
      connections, then put particular devices into possibly multiple
      classes, while sometimes setting multiple flags for the controllers
      themselves. The attempt to have a single flag indicate, e.g. that a
      root-port or a switch-downstream-port could connect was not only
      confusing, it was leading to a situation where it would be impossible
      to specify exactly the right combinations for a new controller.
      
      The solution is for the VIR_PCI_CONNECT_TYPE_* flags to have a 1:1
      correspondence with each type of PCI controller, plus a flag for a PCI
      endpoint device and another for a PCIe endpoint device (the only
      exception to this is that pci-bridge and pcie-expander-bus controllers
      have their upstream connection classified as
      VIR_PCI_CONNECT_TYPE_PCI_DEVICE since they can be plugged into
      *exactly* the same ports as any endpoint device).  Each device then
      has a single flag for connect type (plus the HOTPLUG flag if that
      device can e hotplugged), and each controller sets the CONNECT bits
      for all controllers that can be plugged into it, as well as for either
      type of endpoint device that can be plugged in (and the HOTPLUG flag
      if it can accept hotplugged devices).
      
      With this change, it is *slightly* easier to understand the matching
      of connections (as long as you remember that the flag for a
      device/upstream-facing connection of a controller is the same as that
      device's type, while the flags for a controller's downstream
      connections is the OR of all device types that can be plugged into
      that controller). More importantly, it will be possible to correctly
      specify what can be plugged into a pcie-switch-expander-bus, when
      support for it is added.
      d1cc4605
  2. 06 4月, 2016 1 次提交
  3. 29 3月, 2016 2 次提交
  4. 19 3月, 2016 1 次提交
  5. 09 3月, 2016 1 次提交
    • P
      conf: refactor checking for unsupported memory devices · 185d13b1
      Peter Krempa 提交于
      Introduce a helper to check supported device and domain config and move
      the memory hotplug checks to it.
      
      The advantage of this approach is that by default all new features are
      considered unsupported by all hypervisors unless specifically changed
      rather than the previous approach where every hypervisor would need to
      declare that a given feature is unsupported.
      185d13b1
  6. 06 2月, 2016 2 次提交
    • R
      bhyve: fix preprocessor indentation · dcb3d87d
      Roman Bogorodskiy 提交于
      Syntax-check fails with:
      
      cppi: src/bhyve/bhyve_driver.h: line 26: not properly indented
      cppi: src/bhyve/bhyve_driver.h: line 27: not properly indented
      maint.mk: incorrect preprocessor indentation
      
      Fix by properly indenting '#include's.
      
      Pushed as trivial.
      dcb3d87d
    • M
      bhyve: Fix the build · 5147f4f3
      Michal Privoznik 提交于
      After 1036ddad we use bhyveDriverGetCapabilities from other
      sources too, not only from bhyve_driver.c. However, the function
      was static so not properly expose to other files. In order to
      expose it, we need to move couple of #include-s too.
      Then, there has been a copy paste error in
      virBhyveProcessReconnect: s/privconn/data->driver/.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      5147f4f3
  7. 05 2月, 2016 2 次提交
  8. 04 2月, 2016 2 次提交
  9. 25 1月, 2016 1 次提交
    • R
      bhyve: bhyveload: respect boot dev and boot order · ef01addb
      Roman Bogorodskiy 提交于
      Make bhyveload respect boot order as specified by os.boot section of the
      domain XML or by "boot order" for specific devices. As bhyve does not
      support a real boot order specification right now, it's just about
      choosing a single device to boot from.
      ef01addb
  10. 11 1月, 2016 1 次提交
  11. 09 12月, 2015 1 次提交
  12. 30 11月, 2015 1 次提交
    • M
      conf: Split virDomainObjList into a separate file · 90f3c0d7
      Michal Privoznik 提交于
      Our domain_conf.* files are big enough. Not only they contain XML
      parsing code, but they served as a storage of all functions whose
      name is virDomain prefixed. This is just wrong as it gathers not
      related functions (and modules) into one big file which is then
      harder to maintain. Split virDomainObjList module into a separate
      file called virdomainobjlist.[ch].
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      90f3c0d7
  13. 17 11月, 2015 1 次提交
    • R
      bhyve: monitor: do not override domain's privateData · 89316b2c
      Roman Bogorodskiy 提交于
      Current monitor code overrides domain object's privateData, e.g.
      in virBhyveProcessStart():
      
        vm->privateData = bhyveMonitorOpen(vm, driver);
      
      where bhyveMonitorPtr() returns bhyveMonitorPtr.
      
      This is not right thing to do, so make bhyveMonitorPtr
      a part of the bhyveDomainObjPrivate struct and change related code
      accordingly.
      89316b2c
  14. 27 10月, 2015 1 次提交
  15. 21 10月, 2015 1 次提交
  16. 24 9月, 2015 1 次提交
  17. 23 7月, 2015 1 次提交
    • R
      bhyve: add UTC clock support · 6cb9ef1b
      Roman Bogorodskiy 提交于
      Bhyve as of r279225 (FreeBSD -CURRENT) or r284894 (FreeBSD 10-STABLE)
      supports using UTC time offset via the '-u' argument to bhyve(8). By
      default it's still using localtime.
      
      Make the bhyve driver use UTC clock if it's requested by specifying
      <clock offset='utc'> in domain XML and if the bhyve(8) binary supports
      the '-u' flag.
      6cb9ef1b
  18. 14 7月, 2015 3 次提交
  19. 24 5月, 2015 1 次提交
    • R
      bhyve: fix build with gcc48 · fcac0cf7
      Roman Bogorodskiy 提交于
      Build with gcc 4.8 fails with:
      
      bhyve/bhyve_monitor.c: In function 'bhyveMonitorIO':
      bhyve/bhyve_monitor.c:51:18: error: missing initializer for field 'tv_sec' of 'const struct timespec' [-Werror=missing-field-initializers]
           const struct timespec zerowait = {};
      
      Explicitly initialize zerowait to fix the build.
      fcac0cf7
  20. 24 4月, 2015 1 次提交
  21. 21 4月, 2015 3 次提交
  22. 23 3月, 2015 3 次提交
    • P
      conf: Add interface to parse and format memory device information · 3e4230d2
      Peter Krempa 提交于
      This patch adds code that parses and formats configuration for memory
      devices.
      
      A simple configuration would be:
      <memory model='dimm'>
        <target>
          <size unit='KiB'>524287</size>
          <node>0</node>
        </target>
      </memory>
      
      A complete configuration of a memory device:
      <memory model='dimm'>
        <source>
          <pagesize unit='KiB'>4096</pagesize>
          <nodemask>1-3</nodemask>
        </source>
        <target>
          <size unit='KiB'>524287</size>
          <node>1</node>
        </target>
      </memory>
      
      This patch preemptively forbids use of the <memory> device in individual
      drivers so the users are warned right away that the device is not
      supported.
      3e4230d2
    • P
      conf: Add support for parsing and formatting max memory and slot count · bffb9163
      Peter Krempa 提交于
      Add a XML element that will allow to specify maximum supportable memory
      and the count of memory slots to use with memory hotplug.
      
      To avoid possible confusion and misuse of the new element this patch
      also explicitly forbids the use of the maxMemory setting in individual
      drivers's post parse callbacks. This limitation will be lifted when the
      support is implemented.
      bffb9163
    • M
      Fix common misspellings · 0e7457e5
      Martin Kletzander 提交于
      Wikipedia's list of common misspellings [1] has a machine-readable
      version.  This patch fixes those misspellings mentioned in the list
      which don't have multiple right variants (as e.g. "accension", which can
      be both "accession" and "ascension"), such misspellings are left
      untouched.  The list of changes was manually re-checked for false
      positives.
      
      [1] https://en.wikipedia.org/wiki/Wikipedia:Lists_of_common_misspellings/For_machinesSigned-off-by: NMartin Kletzander <mkletzan@redhat.com>
      0e7457e5
  23. 16 3月, 2015 1 次提交
    • P
      conf: Replace access to def->mem.max_balloon with accessor functions · 4f9907cd
      Peter Krempa 提交于
      As there are two possible approaches to define a domain's memory size -
      one used with legacy, non-NUMA VMs configured in the <memory> element
      and per-node based approach on NUMA machines - the user needs to make
      sure that both are specified correctly in the NUMA case.
      
      To avoid this burden on the user I'd like to replace the NUMA case with
      automatic totaling of the memory size. To achieve this I need to replace
      direct access to the virDomainMemtune's 'max_balloon' field with
      two separate getters depending on the desired size.
      
      The two sizes are needed as:
      1) Startup memory size doesn't include memory modules in some
      hypervisors.
      2) After startup these count as the usable memory size.
      
      Note that the comments for the functions are future aware and document
      state that will be present after a few later patches.
      4f9907cd
  24. 02 3月, 2015 1 次提交
  25. 06 2月, 2015 1 次提交
  26. 27 1月, 2015 1 次提交
    • D
      Removing probing of secondary drivers · 55ea7be7
      Daniel P. Berrange 提交于
      For stateless, client side drivers, it is never correct to
      probe for secondary drivers. It is only ever appropriate to
      use the secondary driver that is associated with the
      hypervisor in question. As a result the ESX & HyperV drivers
      have both been forced to do hacks where they register no-op
      drivers for the ones they don't implement.
      
      For stateful, server side drivers, we always just want to
      use the same built-in shared driver. The exception is
      virtualbox which is really a stateless driver and so wants
      to use its own server side secondary drivers. To deal with
      this virtualbox has to be built as 3 separate loadable
      modules to allow registration to work in the right order.
      
      This can all be simplified by introducing a new struct
      recording the precise set of secondary drivers each
      hypervisor driver wants
      
      struct _virConnectDriver {
          virHypervisorDriverPtr hypervisorDriver;
          virInterfaceDriverPtr interfaceDriver;
          virNetworkDriverPtr networkDriver;
          virNodeDeviceDriverPtr nodeDeviceDriver;
          virNWFilterDriverPtr nwfilterDriver;
          virSecretDriverPtr secretDriver;
          virStorageDriverPtr storageDriver;
      };
      
      Instead of registering the hypervisor driver, we now
      just register a virConnectDriver instead. This allows
      us to remove all probing of secondary drivers. Once we
      have chosen the primary driver, we immediately know the
      correct secondary drivers to use.
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      55ea7be7
  27. 16 1月, 2015 1 次提交
  28. 14 1月, 2015 1 次提交
    • D
      Give virDomainDef parser & formatter their own flags · 0ecd6851
      Daniel P. Berrange 提交于
      The virDomainDefParse* and virDomainDefFormat* methods both
      accept the VIR_DOMAIN_XML_* flags defined in the public API,
      along with a set of other VIR_DOMAIN_XML_INTERNAL_* flags
      defined in domain_conf.c.
      
      This is seriously confusing & error prone for a number of
      reasons:
      
       - VIR_DOMAIN_XML_SECURE, VIR_DOMAIN_XML_MIGRATABLE and
         VIR_DOMAIN_XML_UPDATE_CPU are only relevant for the
         formatting operation
       - Some of the VIR_DOMAIN_XML_INTERNAL_* flags only apply
         to parse or to format, but not both.
      
      This patch cleanly separates out the flags. There are two
      distint VIR_DOMAIN_DEF_PARSE_* and VIR_DOMAIN_DEF_FORMAT_*
      flags that are used by the corresponding methods. The
      VIR_DOMAIN_XML_* flags received via public API calls must
      be converted to the VIR_DOMAIN_DEF_FORMAT_* flags where
      needed.
      
      The various calls to virDomainDefParse which hardcoded the
      use of the VIR_DOMAIN_XML_INACTIVE flag change to use the
      VIR_DOMAIN_DEF_PARSE_INACTIVE flag.
      0ecd6851
  29. 13 1月, 2015 1 次提交
  30. 04 12月, 2014 1 次提交