1. 11 2月, 2016 1 次提交
    • J
      qemu: Split the command parsing routines into own module · d860b2f5
      John Ferlan 提交于
      Extract out the qemuParseCommandLine{String|Pid} into their own
      separate module - taking with it all the various static functions.
      
      Causes a ripple effect with a few other modules to include the
      new qemu_parse_command.h.
      
      Narrowed down the list of #include's in the split out module to
      those that are necessary for build.
      d860b2f5
  2. 21 1月, 2016 1 次提交
  3. 09 1月, 2016 3 次提交
  4. 15 12月, 2015 2 次提交
    • P
      qemuMonitorJSONEjectMedia: don't stringify the replay at all · cbd3d065
      Pavel Hrdina 提交于
      Commit 256496e1 introduced a detection if "is locked" in error replay
      from qemu monitor. Commit c4073657 fixed a memory leak, but it was
      pointed out by Peter, that this could be done cleaner without
      stringifing the replay.
      Signed-off-by: NPavel Hrdina <phrdina@redhat.com>
      cbd3d065
    • M
      qemuMonitorJSONEjectMedia: Don't leak stringified reply · c4073657
      Michal Privoznik 提交于
      The return value of virJSONValueToString() should be freed when
      no longer needed. This is not the case after 256496e1.
      
      ==26902== 138 bytes in 2 blocks are definitely lost in loss record 1,051 of 1,239
      ==26902==    at 0x4C29F80: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
      ==26902==    by 0xAA5F599: strdup (in /lib64/libc-2.21.so)
      ==26902==    by 0x552BAD9: virStrdup (virstring.c:726)
      ==26902==    by 0x54F60A7: virJSONValueToString (virjson.c:1790)
      ==26902==    by 0x1DF6EBB9: qemuMonitorJSONEjectMedia (qemu_monitor_json.c:2225)
      ==26902==    by 0x1DF57A4C: qemuMonitorEjectMedia (qemu_monitor.c:1985)
      ==26902==    by 0x1DF1EF2D: qemuDomainChangeEjectableMedia (qemu_hotplug.c:199)
      ==26902==    by 0x1DF90314: qemuDomainChangeDiskLive (qemu_driver.c:7985)
      ==26902==    by 0x1DF90476: qemuDomainUpdateDeviceLive (qemu_driver.c:8030)
      ==26902==    by 0x1DF91ED7: qemuDomainUpdateDeviceFlags (qemu_driver.c:8677)
      ==26902==    by 0x561785F: virDomainUpdateDeviceFlags (libvirt-domain.c:8559)
      ==26902==    by 0x134210: remoteDispatchDomainUpdateDeviceFlags (remote_dispatch.h:10966)
      
      ==26902== 106 bytes in 1 blocks are definitely lost in loss record 1,033 of 1,239
      ==26902==    at 0x4C29F80: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so)
      ==26902==    by 0xAA5F599: strdup (in /lib64/libc-2.21.so)
      ==26902==    by 0x552BAD9: virStrdup (virstring.c:726)
      ==26902==    by 0x54F60A7: virJSONValueToString (virjson.c:1790)
      ==26902==    by 0x1DF6EC0C: qemuMonitorJSONEjectMedia (qemu_monitor_json.c:2227)
      ==26902==    by 0x1DF57A4C: qemuMonitorEjectMedia (qemu_monitor.c:1985)
      ==26902==    by 0x1DF1EF2D: qemuDomainChangeEjectableMedia (qemu_hotplug.c:199)
      ==26902==    by 0x1DF90314: qemuDomainChangeDiskLive (qemu_driver.c:7985)
      ==26902==    by 0x1DF90476: qemuDomainUpdateDeviceLive (qemu_driver.c:8030)
      ==26902==    by 0x1DF91ED7: qemuDomainUpdateDeviceFlags (qemu_driver.c:8677)
      ==26902==    by 0x561785F: virDomainUpdateDeviceFlags (libvirt-domain.c:8559)
      ==26902==    by 0x134210: remoteDispatchDomainUpdateDeviceFlags (remote_dispatch.h:10966)
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      c4073657
  5. 09 12月, 2015 1 次提交
  6. 19 11月, 2015 1 次提交
  7. 09 10月, 2015 1 次提交
    • M
      virJSONValueArraySize: return ssize_t · 4f77c48c
      Michal Privoznik 提交于
      The internal representation of a JSON array counts the items in
      size_t. However, for some reason, when asking for the count it's
      reported as int. Firstly, we need the function to return a signed
      type as it's returning -1 on an error. But, not every system has
      integer the same size as size_t. Therefore, lets return ssize_t.
      Signed-off-by: NMichal Privoznik <mprivozn@redhat.com>
      4f77c48c
  8. 26 9月, 2015 1 次提交
  9. 21 7月, 2015 1 次提交
    • P
      qemu: Update state of block job to READY only if it actually is ready · eae59247
      Peter Krempa 提交于
      Few parts of the code looked at the current progress of and assumed that
      a two phase blockjob is in the _READY state as soon as the progress
      reached 100% (info.cur == info.end). In current versions of qemu this
      assumption is invalid and qemu exposes a new flag 'ready' in the
      query-block-jobs output that is set to true if the job is actually
      finished.
      
      This patch adds internal data handling for reading the 'ready' flag and
      acting appropriately as long as the flag is present.
      
      While this still doesn't fix the virsh client problem with two phase
      block jobs and the --pivot option, it at least improves the error
      message:
      
      $ virsh blockcommit  --wait --verbose vm vda  --base vda[1] --active --pivot
      Block commit: [100 %]error: failed to pivot job for disk vda
      error: internal error: unable to execute QEMU command 'block-job-complete': The active block job for device 'drive-virtio-disk0' cannot be completed
      
      to
      
      $ virsh blockcommit  --wait --verbose VM vda  --base vda[1] --active --pivot
      Block commit: [100 %]error: failed to pivot job for disk vda
      error: block copy still active: disk 'vda' not ready for pivot yet
      eae59247
  10. 10 7月, 2015 2 次提交
  11. 30 6月, 2015 2 次提交
  12. 26 6月, 2015 3 次提交
  13. 24 6月, 2015 1 次提交
  14. 23 6月, 2015 1 次提交
    • E
      qemu: simplify json parsing · 40783db3
      Eric Blake 提交于
      Rather than grabbing an arbitrary JSON value and then checking
      if it has the right type, we might as well request the correct
      type to begin with.
      
      * src/qemu/qemu_monitor_json.c (qemuMonitorJSONIOProcessEvent)
      (qemuMonitorJSONCommandWithFd, qemuMonitorJSONHandleGraphics)
      (qemuMonitorJSONGetStatus, qemuMonitorJSONExtractCPUInfo)
      (qemuMonitorJSONGetVirtType, qemuMonitorJSONGetBalloonInfo)
      (qemuMonitorJSONGetMemoryStats)
      (qemuMonitorJSONDevGetBlockExtent)
      (qemuMonitorJSONGetOneBlockStatsInfo)
      (qemuMonitorJSONGetAllBlockStatsInfo)
      (qemuMonitorJSONBlockStatsUpdateCapacityOne)
      (qemuMonitorJSONBlockStatsUpdateCapacity)
      (qemuMonitorJSONGetBlockExtent)
      (qemuMonitorJSONGetMigrationStatusReply)
      (qemuMonitorJSONGetDumpGuestMemoryCapability)
      (qemuMonitorJSONAddFd, qemuMonitorJSONQueryRxFilterParse)
      (qemuMonitorJSONExtractChardevInfo)
      (qemuMonitorJSONDiskNameLookupOne)
      (qemuMonitorJSONDiskNameLookup)
      (qemuMonitorJSONGetAllBlockJobInfo)
      (qemuMonitorJSONBlockIoThrottleInfo, qemuMonitorJSONGetVersion)
      (qemuMonitorJSONGetMachines, qemuMonitorJSONGetCPUDefinitions)
      (qemuMonitorJSONGetCommands, qemuMonitorJSONGetEvents)
      (qemuMonitorJSONGetKVMState, qemuMonitorJSONGetObjectTypes)
      (qemuMonitorJSONGetObjectListPaths)
      (qemuMonitorJSONGetObjectProps, qemuMonitorJSONGetTargetArch)
      (qemuMonitorJSONGetMigrationCapabilities)
      (qemuMonitorJSONGetStringArray, qemuMonitorJSONAttachCharDev)
      (qemuMonitorJSONGetCPUx86Data, qemuMonitorJSONGetIOThreads)
      (qemuMonitorJSONGetMemoryDeviceInfo): Use shorter idioms.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      40783db3
  15. 19 6月, 2015 3 次提交
  16. 05 6月, 2015 3 次提交
  17. 03 6月, 2015 2 次提交
  18. 28 4月, 2015 2 次提交
  19. 14 4月, 2015 5 次提交
  20. 09 4月, 2015 1 次提交
  21. 26 3月, 2015 1 次提交
  22. 23 3月, 2015 1 次提交
  23. 19 3月, 2015 1 次提交
    • E
      qemu: track 'cancelling' migration state · e2660cb8
      Eric Blake 提交于
      In qemu 2.3, the migration status will include 'cancelling' in the
      window between when an asynchronous cancel has been requested and
      when the migration is actually halted.  Previously, qemu hid this
      state and reported 'active'.  Libvirt manages the sequence okay
      even when the string is unrecognized (that is, it will report an
      unknown state:
      
      Migration: [ 69 %]^Cerror: internal error: unexpected migration status in cancelling.
      
      but the migration is still cancelled), but recognizing the string
      makes for a smoother user experience.
      
      * src/qemu/qemu_monitor.h
      (QEMU_MONITOR_MIGRATION_STATUS_CANCELLING): Add enum.
      * src/qemu/qemu_monitor.c (qemuMonitorMigrationStatus): Map it.
      * src/qemu/qemu_migration.c (qemuMigrationUpdateJobStatus): Adjust
      clients.
      * src/qemu/qemu_monitor_json.c
      (qemuMonitorJSONGetMigrationStatusReply): Likewise.
      Signed-off-by: NEric Blake <eblake@redhat.com>
      e2660cb8