[PATCH V2 00/20] qemu: support mapped-ram+directio+mulitfd

Jim Fehlig via Devel posted 20 patches 7 months, 2 weeks ago
Failed in applying to current master (apply log)
There is a newer version of this series
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(-)
[PATCH V2 00/20] qemu: support mapped-ram+directio+mulitfd
Posted by Jim Fehlig via Devel 7 months, 2 weeks ago
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/MNBHGQH7PKV4RXQZXLPAGMOTNEVR3JVS/

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