You need to sign in or sign up before continuing.
  1. 25 9月, 2014 2 次提交
  2. 24 9月, 2014 2 次提交
    • P
      qemu: Report better errors from broken backing chains · 639a0098
      Peter Krempa 提交于
      Request erroring out from the backing chain traveller and drop qemu's
      internal backing chain integrity tester.
      
      The backing chain traveller reports errors by itself with possibly more
      detail than qemuDiskChainCheckBroken ever could.
      
      We also need to make sure that we reconnect to existing qemu instances
      even at the cost of losing the backing chain info (this really should be
      stored in the XML rather than reloaded from disk, but that needs some
      work).
      639a0098
    • P
      cputune_event: queue the event for cputune updates · 0dce260c
      Pavel Hrdina 提交于
      Now we have universal tunable event so we can use it for reporting
      changes to user. The cputune values will be prefixed with "cputune" to
      distinguish it from other tunable events.
      Signed-off-by: NPavel Hrdina <phrdina@redhat.com>
      0dce260c
  3. 22 9月, 2014 5 次提交
  4. 19 9月, 2014 2 次提交
  5. 18 9月, 2014 11 次提交
  6. 17 9月, 2014 2 次提交
  7. 16 9月, 2014 3 次提交
  8. 12 9月, 2014 6 次提交
    • E
      blockjob: allow finer bandwidth tuning for set speed · 0a6a6b1a
      Eric Blake 提交于
      We stupidly modeled block job bandwidth after migration
      bandwidth, which in turn was an 'unsigned long' and therefore
      subject to 32-bit vs. 64-bit interpretations.  To work around
      the fact that 10-gigabit interfaces are possible but don't fit
      within 32 bits, the original interface took the number scaled
      as MiB/sec.  But this scaling is rather coarse, and it might
      be nice to tune bandwidth finer than in megabyte chunks.
      
      Several of the block job calls that can set speed are fed
      through a common interface, so it was easier to adjust them all
      at once.  Note that there is intentionally no flag for the new
      virDomainBlockCopy; there, since the API already uses a 64-bit
      type always, instead of a possible 32-bit type, and is brand
      new, it was easier to just avoid scaling issues.  As with the
      previous patch that adjusted the query side (commit db33cc24),
      omitting the new flag preserves old behavior, and the
      documentation now mentions limits of what happens when a 32-bit
      machine is on either client or server side.
      
      * include/libvirt/libvirt.h.in (virDomainBlockJobSetSpeedFlags)
      (virDomainBlockPullFlags)
      (VIR_DOMAIN_BLOCK_REBASE_BANDWIDTH_BYTES)
      (VIR_DOMAIN_BLOCK_COMMIT_BANDWIDTH_BYTES): New enums.
      * src/libvirt.c (virDomainBlockJobSetSpeed, virDomainBlockPull)
      (virDomainBlockRebase, virDomainBlockCommit): Document them.
      * src/qemu/qemu_driver.c (qemuDomainBlockJobSetSpeed)
      (qemuDomainBlockPull, qemuDomainBlockRebase)
      (qemuDomainBlockCommit, qemuDomainBlockJobImpl): Support new flag.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      0a6a6b1a
    • E
      blockcopy: add qemu implementation of new tunables · eef91f94
      Eric Blake 提交于
      Upstream qemu 1.4 added some drive-mirror tunables not present
      when it was first introduced in 1.3.  Management apps may want
      to set these in some cases (for example, without tuning
      granularity down to sector size, a copy may end up occupying
      more bytes than the original because an entire cluster is
      copied even when only a sector within the cluster is dirty,
      although tuning it down results in more CPU time to do the
      copy).  I haven't personally needed to use the parameters, but
      since they exist, and since the new API supports virTypedParams,
      we might as well expose them.
      
      Since the tuning parameters aren't often used, and omitted from
      the QMP command when unspecified, I think it is safe to rely on
      qemu 1.3 to issue an error about them being unsupported, rather
      than trying to create a new capability bit in libvirt.
      
      Meanwhile, all versions of qemu from 1.4 to 2.1 have a bug where
      a bad granularity (such as non-power-of-2) gives a poor message:
      error: internal error: unable to execute QEMU command 'drive-mirror': Invalid parameter 'drive-virtio-disk0'
      
      because of abuse of QERR_INVALID_PARAMETER (which is supposed to
      name the parameter that was given a bad value, rather than the
      value passed to some other parameter).  I don't see that a
      capability check will help, so we'll just live with it (and it
      has since been improved in upstream qemu).
      
      * src/qemu/qemu_monitor.h (qemuMonitorDriveMirror): Add
      parameters.
      * src/qemu/qemu_monitor.c (qemuMonitorDriveMirror): Likewise.
      * src/qemu/qemu_monitor_json.h (qemuMonitorJSONDriveMirror):
      Likewise.
      * src/qemu/qemu_monitor_json.c (qemuMonitorJSONDriveMirror):
      Likewise.
      * src/qemu/qemu_driver.c (qemuDomainBlockCopyCommon): Likewise.
      (qemuDomainBlockRebase, qemuDomainBlockCopy): Adjust callers.
      * src/qemu/qemu_migration.c (qemuMigrationDriveMirror): Likewise.
      * tests/qemumonitorjsontest.c (qemuMonitorJSONDriveMirror): Likewise.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      eef91f94
    • E
      blockcopy: add qemu implementation of new API · e3f5f8ee
      Eric Blake 提交于
      The hard part of managing the disk copy is already coded; all
      this had to do was convert the XML and virTypedParameters into
      the internal representation.
      
      With this patch, all blockcopy operations that used the old
      API should also work via the new API.  Additional extensions,
      such as supporting the granularity tunable or a network rather
      than file destination, will be added as later patches.
      
      * src/qemu/qemu_driver.c (qemuDomainBlockCopy): New function.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      e3f5f8ee
    • E
      blockcopy: tweak how rebase calls into copy · e53ee6c1
      Eric Blake 提交于
      In order to implement the new virDomainBlockCopy, the existing
      block copy internal implementation needs to be adjusted.  The
      new function will parse XML into a storage source, and parse
      typed parameters into integers, then call into the same common
      backend.  For now, it's easier to keep the same implementation
      limits that only local file destinations are suported, but now
      the check needs to be explicit.  Similar to qemuDomainBlockJobImpl
      consuming 'vm', this code also consumes the caller's 'mirror'
      description of the destination.
      
      * src/qemu/qemu_driver.c (qemuDomainBlockCopy): Rename...
      (qemuDomainBlockCopyCommon): ...and adjust parameters.
      (qemuDomainBlockRebase): Adjust caller.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      e53ee6c1
    • M
      virDomainUndefineFlags: Allow NVRAM unlinking · 273b6581
      Michal Privoznik 提交于
      When a domain is undefined, there are options to remove it's
      managed save state or snapshots. However, there's another file
      that libvirt creates per domain: the NVRAM variable store file.
      Make sure that the file is not left behind if the domain is
      undefined.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      273b6581
    • D
      util: Allow port allocator to skip bind() check · 973173e6
      Daniel P. Berrange 提交于
      Test suites using the port allocator don't want to have different
      behaviour depending on whether a port is in use on the host. Add
      a VIR_PORT_ALLOCATOR_SKIP_BIND_CHECK which test suites can use
      to skip the bind() test. The port allocator will thus only track
      ports in use by the test suite process itself. This is fine when
      using the port allocator to generate guest configs which won't
      actually be launched
      Signed-off-by: NDaniel P. Berrange <berrange@redhat.com>
      Signed-off-by: NJim Fehlig <jfehlig@suse.com>
      973173e6
  9. 11 9月, 2014 4 次提交
    • J
      qemu: Resolve Coverity NEGATIVE_RETURNS · 81a8fc34
      John Ferlan 提交于
      Coverity notes that if the virConnectListAllDomains returns a negative
      value then the loop at the cleanup label that ends on numDomains will
      have issues.
      Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
      81a8fc34
    • J
      qemu: Resolve Coverity FORWARD_NULL · f28a31fc
      John Ferlan 提交于
      If we jump to cleanup before allocating the 'result', then the call
      to virBlkioDeviceArrayClear will deref result causing a problem.
      Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
      f28a31fc
    • J
      qemu: Resolve Coverity REVERSE_INULL · 9f845b11
      John Ferlan 提交于
      Coverity complains that checking for !domlist after setting doms = domlist
      and making a deref of doms just above
      
      It seems the call in question was intended to me made in the case that
      'doms' was passed in and not when the virDomainObjListExport() call
      allocated domlist and already called virConnectGetAllDomainStatsCheckACL().
      
      Thus rather than check for !domlist - check that "doms != domlist" in
      order to avoid the Coverity message.
      Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
      9f845b11
    • J
      qemu_driver: Resolve Coverity COPY_PASTE_ERROR · f72f0642
      John Ferlan 提交于
      In qemuDomainSetBlkioParameters(), Coverity points out that the calls
      to qemuDomainParseBlkioDeviceStr() are slightly different and points
      out there may be a cut-n-paste error.
      
      In the first call (AFFECT_LIVE), the second parameter is "param->field";
      however, for the second call (AFFECT_CONFIG), the second parameter is
      "params->field".  It seems the "param->field" is correct especially since
      each path as a setting of "param" to "&params[i]".  Furthermore, there
      were a few more instances of using "params[i]" instead of "param->"
      which I cleaned up.
      Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
      f72f0642
  10. 10 9月, 2014 3 次提交