v1:
https://www.redhat.com/archives/libvir-list/2017-November/msg00731.html
Differences from v1 (besides more patches)
Rather than use a timing loop in order to fetch the dump stats and
the presence of the 'query-dump' command, let's use the DUMP_COMPLETED
event and wire that up in order to determine when the dump has been
completed. In the mean time, the previous timing loop is converted into
a qemuDomainGetJobInfoDumpStats to be called if the "right conditions"
exist. Also found/fixed a couple of minor issues from v1 regarding
usage "dumpformat" instead of just "format" from my patch 2
adjustment
and a type for qemuMonitorDumpStatus (was qemuMontiorDumpStatus in v1).
NB: (from v1 cover):
Details in the patches. Essentially though QEMU 2.6 added the ability
to perform the 'dump-guest-memory' via a thread by adding a 'detach'
boolean to the command. In order to watch the progress of the thread
the 'query-dump' command was added. The query-dump will return just
the current status, the total size to be dumped, and the current
progress. So using the migrate stats data in the DomainJobInfo we
can then save our current progress allowing tools such as virsh to
watch that progress. As an added benefit, the dump-guest-memory is
now truly asynchronous.
John Ferlan (10):
qemu: Clean up style for the qemuDumpToFd definition
qemu: Alter dump-guest-memory command generation
qemu: Add support for DUMP_COMPLETED event
qemu: Introduce qemuProcessHandleDumpCompleted
qemu: Introduce qemuMonitor[JSON]QueryDump
qemu: Add new parameter to qemuMonitorDumpToFd
qemu: Introduce qemuDomainGetJobInfoMigrationStats
qemu: Introduce qemuDomainGetJobInfoDumpStats
qemu: Add dump completed event to the capabilities
qemu: Allow showing the dump progress for memory only dump
src/qemu/qemu_capabilities.c | 2 +
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_domain.c | 2 +
src/qemu/qemu_domain.h | 2 +
src/qemu/qemu_driver.c | 157 ++++++++++++++++++---
src/qemu/qemu_monitor.c | 39 ++++-
src/qemu/qemu_monitor.h | 33 ++++-
src/qemu/qemu_monitor_json.c | 122 ++++++++++++++--
src/qemu/qemu_monitor_json.h | 7 +-
src/qemu/qemu_process.c | 23 +++
.../caps_2.10.0-gicv2.aarch64.xml | 1 +
.../caps_2.10.0-gicv3.aarch64.xml | 1 +
tests/qemucapabilitiesdata/caps_2.10.0.ppc64.xml | 1 +
tests/qemucapabilitiesdata/caps_2.10.0.s390x.xml | 1 +
tests/qemucapabilitiesdata/caps_2.10.0.x86_64.xml | 1 +
.../caps_2.6.0-gicv2.aarch64.xml | 1 +
.../caps_2.6.0-gicv3.aarch64.xml | 1 +
tests/qemucapabilitiesdata/caps_2.6.0.ppc64.xml | 1 +
tests/qemucapabilitiesdata/caps_2.6.0.x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_2.7.0.s390x.xml | 1 +
tests/qemucapabilitiesdata/caps_2.7.0.x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_2.8.0.s390x.xml | 1 +
tests/qemucapabilitiesdata/caps_2.8.0.x86_64.xml | 1 +
tests/qemucapabilitiesdata/caps_2.9.0.ppc64.xml | 1 +
tests/qemucapabilitiesdata/caps_2.9.0.s390x.xml | 1 +
tests/qemucapabilitiesdata/caps_2.9.0.x86_64.xml | 1 +
tests/qemumonitorjsontest.c | 3 +-
27 files changed, 365 insertions(+), 42 deletions(-)
--
2.13.6