This series applied on top of [1].
In this series I still use old API to load snapshot if snapshot was done
using old API. The thing is snapshot-load require "vmstate" parameter to
be set. And with old snapshot the disk which holds vmstate is not known
to libvirt. This is unfortunate as we will need to use old API for
a long time even after we drop support for QEMU older then 6.0 (where
snapshot-* API is introduced). I guess the best will be to allow
omiting "vmstate" for snapshot-load and thus falling back to default
disk for vmstate.
The code for recovering on libvirtd crash/restart is missing. I'll work on
it too if the overall approach is accepted.
[PATCH v2 REBASE 0/3] qemu: don't pause VM when creating internal snapshot
https://listman.redhat.com/archives/libvir-list/2022-March/229719.html
Nikolay Shirokovskiy (11):
qemu: add QEMU_CAPS_SNAPSHOT_SAVE capability
qemu: add monitor commands to snapshot-{save, load, delete}
qemu: move snapshot related funcs from domain.c to snapshot.c
qemu: introduce QEMU_ASYNC_JOB_SNAPSHOT_DELETE
qemu: snapshot: prepare for async snapshot deletion
conf: add memory state disk for internal snapshots
qemu: check internal snaphshot memory disk
qemu: add snapshot job types to qemuMonitorJobType
qemu: use snapshot-save for modern qemu to create snapshot
qemu: use snapshot-load for modern QEMU to revert to snapshot
qemu: use snapshot-delete for modern QEMU to delete snapshot
src/conf/snapshot_conf.c | 13 +
src/conf/snapshot_conf.h | 1 +
src/hypervisor/domain_job.c | 1 +
src/hypervisor/domain_job.h | 1 +
src/qemu/qemu_capabilities.c | 2 +
src/qemu/qemu_capabilities.h | 1 +
src/qemu/qemu_domain.c | 241 +-------
src/qemu/qemu_domain.h | 19 -
src/qemu/qemu_domainjob.c | 2 +
src/qemu/qemu_driver.c | 14 +-
src/qemu/qemu_migration.c | 2 +
src/qemu/qemu_monitor.c | 56 ++
src/qemu/qemu_monitor.h | 26 +
src/qemu/qemu_monitor_json.c | 106 ++++
src/qemu/qemu_monitor_json.h | 23 +
src/qemu/qemu_process.c | 22 +-
src/qemu/qemu_snapshot.c | 583 +++++++++++++++++-
src/qemu/qemu_snapshot.h | 10 +
.../caps_6.0.0.aarch64.xml | 1 +
.../qemucapabilitiesdata/caps_6.0.0.s390x.xml | 1 +
.../caps_6.0.0.x86_64.xml | 1 +
.../caps_6.1.0.x86_64.xml | 1 +
.../caps_6.2.0.aarch64.xml | 1 +
.../qemucapabilitiesdata/caps_6.2.0.ppc64.xml | 1 +
.../caps_6.2.0.x86_64.xml | 1 +
.../qemucapabilitiesdata/caps_7.0.0.ppc64.xml | 1 +
.../caps_7.0.0.x86_64.xml | 1 +
27 files changed, 844 insertions(+), 288 deletions(-)
--
2.35.1