(See "Add public APIs for post-copy migration" patch for more details
about post-copy migration.)
Post-copy support was originally written by Cristian Klein in 2014, but
no one touched the series since then. Some patches in this series are
modified versions of the old patches from Cristian, some patches had to
be rewritten from scratch since libvirt code changed a lot (we started
using migration events), and some patches are completely new.
While post-copy migration is included in QEMU 2.5.0, it didn't support
everything libvirt needs. Thus you need QEMU from git to use post-copy.
Luckily, the QEMU migration capability we need to enable to use
post-copy is still prefixed with "x-", which means it's still considered
experimental. Once we are sure QEMU gives us all we need, the "x-"
prefix will be removed.
Seamless SPICE migration doesn't work with post-copy now, but I'll look
at that.
This series (VIR_MIGRATE_POSTCOPY_AFTER_PRECOPY support) depends on
"Introduce migration iteration event" series I sent yesterday.
Cristian Klein (6):
Add public APIs for post-copy migration
qemu: Add QMP functions for post-copy migration
qemu: Add support for VIR_MIGRATE_POSTCOPY flag
qemu: Implement virDomainMigrateStartPostCopy
virsh: Add support for post-copy migration
virsh: Add --postcopy-after-precopy option to migrate
Jiri Denemark (10):
Add event and state details for post-copy
qemu: Don't explicitly stop CPUs after migration
qemu: Handle postcopy-active migration state
qemu: Add flags to qemuMigrationWaitForCompletion
qemu: Add support for VIR_MIGRATE_POSTCOPY_AFTER_PRECOPY flag
virsh: Configurable migrate --timeout action
qemu: Don't kill running migrated domain on daemon restart
qemu: Refactor qemuProcessRecoverMigration
qemu: Handle post-copy migration failures
qemu: Refuse to abort migration in post-copy mode
examples/object-events/event-test.c | 9 ++
include/libvirt/libvirt-domain.h | 12 ++
src/conf/domain_conf.c | 7 +-
src/driver-hypervisor.h | 5 +
src/libvirt-domain.c | 140 +++++++++++++++++
src/libvirt_public.syms | 4 +
src/qemu/qemu_domain.c | 1 +
src/qemu/qemu_domain.h | 3 +
src/qemu/qemu_driver.c | 72 ++++++++-
src/qemu/qemu_migration.c | 299 +++++++++++++++++++++++++++++++-----
src/qemu/qemu_migration.h | 7 +-
src/qemu/qemu_monitor.c | 16 +-
src/qemu/qemu_monitor.h | 4 +
src/qemu/qemu_monitor_json.c | 23 +++
src/qemu/qemu_monitor_json.h | 3 +
src/qemu/qemu_process.c | 252 +++++++++++++++++++-----------
src/remote/remote_driver.c | 1 +
src/remote/remote_protocol.x | 13 +-
src/remote_protocol-structs | 5 +
tools/virsh-domain-monitor.c | 7 +-
tools/virsh-domain.c | 131 ++++++++++++++--
tools/virsh.pod | 31 +++-
22 files changed, 884 insertions(+), 161 deletions(-)
--
2.7.0