1. 11 10月, 2016 1 次提交
  2. 05 10月, 2016 1 次提交
  3. 26 9月, 2016 9 次提交
  4. 22 9月, 2016 3 次提交
  5. 20 9月, 2016 1 次提交
  6. 14 9月, 2016 1 次提交
  7. 12 9月, 2016 2 次提交
    • J
      qemu: Don't use query-migrate on destination · 56258a38
      Jiri Denemark 提交于
      When migration fails, we need to poke QEMU monitor to check for a reason
      of the failure. We did this using query-migrate QMP command, which is
      not supposed to return any meaningful result on the destination side.
      Thus if the monitor was still functional when we detected the migration
      failure, parsing the answer from query-migrate always failed with the
      following error message:
      
          "info migration reply was missing return status"
      
      This irrelevant message was then used as the reason for the migration
      failure replacing any message we might have had.
      
      Let's use harmless query-status for poking the monitor to make sure we
      only get an error if the monitor connection is broken.
      
      https://bugzilla.redhat.com/show_bug.cgi?id=1374613Signed-off-by: NJiri Denemark <jdenemar@redhat.com>
      56258a38
    • P
      qemu: domain: Clear startup policy for dropped removable media · 6e19cc59
      Peter Krempa 提交于
      When a source image is dropped when missing due to startup policy the
      policy needs to be cleared since it was relevant only for the given
      storage source. New sources need to update it if needed.
      6e19cc59
  8. 09 9月, 2016 1 次提交
  9. 03 9月, 2016 1 次提交
    • N
      qemu: Filter cur_balloon ABI check for certain transactions · c62e79c8
      Nikolay Shirokovskiy 提交于
      Since the domain lock is not held during preparation of an external XML
      config, it is possible that the value can change resulting in unexpected
      failures during ABI consistency checking for some save and migrate
      operations.
      
      This patch adds a new flag to skip the checking of the cur_balloon value
      and then sets the destination value to the source value to ensure
      subsequent checks without the skip flag will succeed.
      
      This way it is protected from forges and is keeped up to date too.
      Signed-off-by: NNikolay Shirokovskiy <nshirokovskiy@virtuozzo.com>
      c62e79c8
  10. 25 8月, 2016 9 次提交
    • P
      qemu: command: Add support for sparse vcpu topologies · 9eb9106e
      Peter Krempa 提交于
      Add support for using the new approach to hotplug vcpus using device_add
      during startup of qemu to allow sparse vcpu topologies.
      
      There are a few limitations imposed by qemu on the supported
      configuration:
      - vcpu0 needs to be always present and not hotpluggable
      - non-hotpluggable cpus need to be ordered at the beginning
      - order of the vcpus needs to be unique for every single hotpluggable
        entity
      
      Qemu also doesn't really allow to query the information necessary to
      start a VM with the vcpus directly on the commandline. Fortunately they
      can be hotplugged during startup.
      
      The new hotplug code uses the following approach:
      - non-hotpluggable vcpus are counted and put to the -smp option
      - qemu is started
      - qemu is queried for the necessary information
      - the configuration is checked
      - the hotpluggable vcpus are hotplugged
      - vcpus are started
      
      This patch adds a lot of checking code and enables the support to
      specify the individual vcpu element with qemu.
      9eb9106e
    • P
      qemu: process: Copy final vcpu order information into the vcpu definition · 20ef1232
      Peter Krempa 提交于
      The vcpu order information is extracted only for hotpluggable entities,
      while vcpu definitions belonging to the same hotpluggable entity need
      to all share the order information.
      
      We also can't overwrite it right away in the vcpu info detection code as
      the order is necessary to add the hotpluggable vcpus enabled on boot in
      the correct order.
      
      The helper will store the order information in places where we are
      certain that it's necessary.
      20ef1232
    • P
      qemu: migration: Prepare for non-contiguous vcpu configurations · 48e3d428
      Peter Krempa 提交于
      Introduce a new migration cookie flag that will be used for any
      configurations that are not compatible with libvirt that would not
      support the specific vcpu hotplug approach. This will make sure that old
      libvirt does not fail to reproduce the configuration correctly.
      48e3d428
    • P
      conf: Add XML for individual vCPU hotplug · 5847bc5c
      Peter Krempa 提交于
      Individual vCPU hotplug requires us to track the state of any vCPU. To
      allow this add the following XML:
      
      <domain>
        ...
        <vcpu current='2'>3</vcpu>
        <vcpus>
          <vcpu id='0' enabled='yes' hotpluggable='no' order='1'/>
          <vcpu id='1' enabled='yes' hotpluggable='yes' order='2'/>
          <vcpu id='1' enabled='no' hotpluggable='yes'/>
        </vcpus>
        ...
      
      The 'enabled' attribute allows to control the state of the vcpu.
      'hotpluggable' controls whether given vcpu can be hotplugged and 'order'
      allows to specify the order to add the vcpus.
      5847bc5c
    • P
      qemu: domain: Prepare for VCPUs vanishing while libvirt is not running · 133be0a9
      Peter Krempa 提交于
      Similarly to devices the guest may allow unplug of the VCPU if libvirt
      is down. To avoid problems, refresh the vcpu state on reconnect. Don't
      mess with the vcpu state otherwise.
      133be0a9
    • P
      qemu: domain: Extract cpu-hotplug related data · 6b4a23ff
      Peter Krempa 提交于
      Now that the monitor code gathers all the data we can extract it to
      relevant places either in the definition or the private data of a vcpu.
      
      As only thread id is broken for TCG guests we may extract the rest of
      the data and just skip assigning of the thread id. In case where qemu
      would allow cpu hotplug in TCG mode this will make it work eventually.
      6b4a23ff
    • P
      qemu: monitor: Add algorithm for combining query-(hotpluggable-)-cpus data · 9bbbc88a
      Peter Krempa 提交于
      For hotplug purposes it's necessary to retrieve data using
      query-hotpluggable-cpus while the old query-cpus API report thread IDs
      and order of hotplug.
      
      This patch adds code that merges the data using a rather non-trivial
      algorithm and fills the data to the qemuMonitorCPUInfo structure for
      adding to appropriate place in the domain definition.
      9bbbc88a
    • P
      qemu: Forbid config when topology based cpu count doesn't match the config · ffa536e0
      Peter Krempa 提交于
      As of qemu commit:
      commit a32ef3bfc12c8d0588f43f74dcc5280885bbdb30
      Author: Thomas Huth <thuth@redhat.com>
      Date:   Wed Jul 22 15:59:50 2015 +0200
      
          vl: Add another sanity check to smp_parse() function
      
      v2.4.0-952-ga32ef3b
      
      configuration where the maximum CPU count doesn't match the topology is
      rejected. Prior to that only configurations where the topology would
      contain more cpus than the maximum count would be rejected.
      
      Use QEMU_CAPS_QUERY_HOTPLUGGABLE_CPUS as a relevant recent enough
      witness to avoid breaking old configs.
      ffa536e0
    • P
      qemu: monitor: Return structures from qemuMonitorGetCPUInfo · 5b5f494a
      Peter Krempa 提交于
      The function will gradually add more returned data. Return a struct for
      every vCPU containing the data.
      5b5f494a
  11. 12 8月, 2016 2 次提交
    • A
      qemu: domain: Drop piix3-ohci controller for migration · 31de0fab
      Andrea Bolognani 提交于
      Now that the default USB controller model is explicit rather
      than implicit for i440fx machines, we have to tweak the
      conditions for dropping it in order to keep migration towards
      libvirt <= 0.9.4 working.
      31de0fab
    • A
      qemu: domain: Reflect USB controller model in guest XML · f55eaccb
      Andrea Bolognani 提交于
      When the user doesn't specify any model for a USB controller,
      we use an architecture-dependent default, but we don't reflect
      it in the guest XML.
      
      Pick the default USB controller model when parsing the guest
      XML instead of when creating the QEMU command line, so that
      our choice is saved back to disk.
      f55eaccb
  12. 04 8月, 2016 4 次提交
    • M
      qemu: Enable secure boot · 9c1524a0
      Michal Privoznik 提交于
      In qemu, enabling this feature boils down to adding the following
      onto the command line:
      
        -global driver=cfi.pflash01,property=secure,value=on
      
      However, there are some constraints resulting from the
      implementation. For instance, System Management Mode (SMM) is
      required to be enabled, the machine type must be q35-2.4 or
      later, and the guest should be x86_64. While technically it is
      possible to have 32 bit guests with secure boot, some non-trivial
      CPU flags tuning is required (for instance lm and nx flags must
      be prohibited). Given complexity of our CPU driver, this is not
      trivial. Therefore I've chosen to forbid 32 bit guests for now.
      If there's ever need, we can refine the check later.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      9c1524a0
    • P
      qemu: domain: Simplify return values of qemuDomainRefreshVcpuInfo · 041f3534
      Peter Krempa 提交于
      Call the vcpu thread info validation separately to decrease complexity
      of returned values by qemuDomainRefreshVcpuInfo.
      
      This function now returns 0 on success and -1 on error. Certain
      failures of qemu to report data are still considered as success. Any
      error reported now is fatal.
      041f3534
    • P
      qemu: domain: Improve vCPU data checking in qemuDomainRefreshVcpu · 2bdc300a
      Peter Krempa 提交于
      Validate the presence of the thread id according to state of the vCPU
      rather than just checking the vCPU count. Additionally put the new
      validation code into a separate function so that the information
      retrieval can be split from the validation.
      2bdc300a
    • P
      qemu: domain: Rename qemuDomainDetectVcpuPids to qemuDomainRefreshVcpuInfo · 8f56b5ba
      Peter Krempa 提交于
      The function will eventually do more useful stuff than just detection of
      thread ids.
      8f56b5ba
  13. 02 8月, 2016 5 次提交