(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. We are pretty sure the interface QEMU provides is OK, but we'd like to wait until seamless SPICE migration is fixed for post-copy before removing the experimental prefix. This should hopefully happen in time for QEMU 2.6.0. This series applies on top of "Fix and enhance statistics of a completed job" series I sent yesterday. Both series on top of current master can be fetched from the "post-copy-migration" branch of my staging repository at https://gitlab.com/jirkade/libvirt Version 3: - VIR_DOMAIN_EVENT_SUSPENDED_POSTCOPY_FAILED will only be emitted on the destination host - discard completed stats of an incoming post-copy migration Version 2: - VIR_MIGRATE_POSTCOPY_AFTER_PRECOPY flag dropped - --postcopy-after-precopy implemented entirely in virsh 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 (8): Add event and state details for post-copy qemu: Handle postcopy-active migration state 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 qemu: Add flags to qemuMigrationWaitForCompletion examples/object-events/event-test.c | 9 ++ include/libvirt/libvirt-domain.h | 11 ++ src/conf/domain_conf.c | 7 +- src/driver-hypervisor.h | 5 + src/libvirt-domain.c | 141 ++++++++++++++++- src/libvirt_public.syms | 4 + src/qemu/qemu_domain.c | 1 + src/qemu/qemu_domain.h | 1 + src/qemu/qemu_driver.c | 72 ++++++++- src/qemu/qemu_migration.c | 291 +++++++++++++++++++++++++++++++----- src/qemu/qemu_migration.h | 6 +- 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 | 233 ++++++++++++++++++----------- 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 | 157 +++++++++++++++++-- tools/virsh.pod | 31 +++- 22 files changed, 880 insertions(+), 161 deletions(-) -- 2.7.2 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list