I'm claiming this to be V2 of a series to support QEMU's mapped-ram stream
format [1] and migration capability, even though the approach to control
the feature is different than V1. To control mapped-ram in V1, I bumped
the save format version and added a 'features' field to the save image
header. In V2, I use the save_image_format setting in qemu.conf, extending
it with a 'sparse' option to enable mapped-ram. IMO, the latter is nicer
approach that fits better with existing save options.
V2 leaves the "raw" save image format as default. save_image_format must
be set to "sparse" to enable use of mapped-ram. Like V1, this version of
the series also includes patches that leverage mapped-ram to add support
for parallel save/restore.
In one of the previous threads on this topic we discussed per-VM control of
save image format by adding a 'format' parameter to virDomainSaveParams.
I can do that as a followup series if folks agree its useful.
Changes in V2
* Use save_image_format setting to control mapped-ram instead of
introducing a new field to the header and bumping the save image version
* Rename save parameter parallel-connections to parallel-channels
* Address other minor comments from V1
[1]
https://lists.libvirt.org/archives/list/devel@lists.libvirt.org/message/M...
Claudio Fontana (3):
include: Define constants for parallel save/restore
tools: add parallel parameter to virsh save command
tools: add parallel parameter to virsh restore command
Jim Fehlig (17):
lib: virDomain{Save,Restore}Params: Ensure absolute path
qemu_fd: Add function to retrieve fdset ID
qemu: Add function to check capability in migration params
qemu: Add function to get bool value from migration params
qemu: Add mapped-ram migration capability
qemu: Add function to get migration params for save
qemu_saveimage: add "sparse" to supported save image formats
qemu: Add helper function for creating save image fd
qemu: Move declaration of virQEMUSaveFormat to header file
qemu: Add support for mapped-ram on save
qemu: Decompose qemuSaveImageOpen
qemu: Move creation of qemuProcessIncomingDef struct
qemu: Apply migration parameters in qemuMigrationDstRun
qemu: Add support for mapped-ram on restore
qemu: Support O_DIRECT with mapped-ram on save
qemu: Support O_DIRECT with mapped-ram on restore
qemu: Add support for parallel save and restore
docs/manpages/virsh.rst | 21 ++-
include/libvirt/libvirt-domain.h | 11 ++
src/libvirt-domain.c | 95 +++++++++++---
src/qemu/qemu.conf.in | 9 +-
src/qemu/qemu_driver.c | 108 +++++++++++-----
src/qemu/qemu_fd.c | 18 +++
src/qemu/qemu_fd.h | 3 +
src/qemu/qemu_migration.c | 194 +++++++++++++++++++---------
src/qemu/qemu_migration.h | 10 +-
src/qemu/qemu_migration_params.c | 92 ++++++++++++++
src/qemu/qemu_migration_params.h | 17 +++
src/qemu/qemu_monitor.c | 40 ++++++
src/qemu/qemu_monitor.h | 5 +
src/qemu/qemu_process.c | 117 ++++++++++++-----
src/qemu/qemu_process.h | 19 ++-
src/qemu/qemu_saveimage.c | 211 ++++++++++++++++++-------------
src/qemu/qemu_saveimage.h | 39 +++++-
src/qemu/qemu_snapshot.c | 29 +++--
tools/virsh-domain.c | 79 ++++++++++--
19 files changed, 856 insertions(+), 261 deletions(-)
--
2.43.0