(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. Fetching statistics of a completed post-copy migration does not work either (libvirt would report incorrect data). This series (VIR_MIGRATE_POSTCOPY_AFTER_PRECOPY support) depends on "Introduce migration iteration event" series I sent yesterday. 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 (9): Add event and state details for post-copy qemu: Don't explicitly stop CPUs after migration 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 | 114 +++++++++++++++ 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 | 283 ++++++++++++++++++++++++++++++------ 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 | 249 +++++++++++++++++++------------ 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 | 158 ++++++++++++++++++-- tools/virsh.pod | 31 +++- 22 files changed, 865 insertions(+), 160 deletions(-) -- 2.7.0 -- libvir-list mailing list libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list