This series adds support for the libxl migration v2 stream, and untangles the existing layering violations of the toolstack and qemu records.
It can be found on the branch "libxl-migv2-v2" git://xenbits.xen.org/people/andrewcoop/xen.git http://xenbits.xen.org/git-http/people/andrewcoop/xen.git Major changes in v2 are being rebased over the libxl AO-abort series, and a redesign of the internal logic to support Remus/COLO buffering and failover. At the end of the series, legacy migration is no longer used. The Remus code is untested by me. All other combinations of suspend/migrate/resume have been tested with PV and HVM guests (qemu-trad and qemu-upstream), including 32 -> 64 bit migration (which was the underlying bug causing us to write migration v2 in the first place). Anyway, thoughts/comments welcome. Please test! ~Andrew Summary of Acks/Modified/New from v1 N bsd-sys-queue-h-seddery: Massage `offsetof' A tools/libxc: Always compile the compat qemu variables into xc_sr_context A tools/libxl: Introduce ROUNDUP() N tools/libxl: Introduce libxl__kill() AM tools/libxl: Stash all restore parameters in domain_create_state N tools/libxl: Split libxl__domain_create_state.restore_fd in two M tools/libxl: Extra management APIs for the save helper AM tools/xl: Mandatory flag indicating the format of the migration stream docs: Libxl migration v2 stream specification AM tools/python: Libxc migration v2 infrastructure AM tools/python: Libxl migration v2 infrastructure N tools/python: Other migration infrastructure AM tools/python: Verification utility for v2 stream spec compliance AM tools/python: Conversion utility for legacy migration streams M tools/libxl: Migration v2 stream format M tools/libxl: Infrastructure for reading a libxl migration v2 stream M tools/libxl: Support converting a legacy stream to a v2 stream M tools/libxl: Convert a legacy stream if needed M tools/libxc+libxl+xl: Restore v2 streams M tools/libxl: Infrastructure for writing a v2 stream M tools/libxc+libxl+xl: Save v2 streams AM docs/libxl: Introduce CHECKPOINT_END to support migration v2 remus streams M tools/libxl: Write checkpoint records into the stream M tools/libx{c,l}: Introduce restore_callbacks.checkpoint() M tools/libxl: Handle checkpoint records in a libxl migration v2 stream A tools/libxc: Drop all XG_LIBXL_HVM_COMPAT code from libxc A tools/libxl: Drop all knowledge of toolstack callbacks Andrew Cooper (23): tools/libxc: Always compile the compat qemu variables into xc_sr_context tools/libxl: Introduce ROUNDUP() tools/libxl: Introduce libxl__kill() tools/libxl: Stash all restore parameters in domain_create_state tools/libxl: Split libxl__domain_create_state.restore_fd in two tools/libxl: Extra management APIs for the save helper tools/xl: Mandatory flag indicating the format of the migration stream docs: Libxl migration v2 stream specification tools/python: Libxc migration v2 infrastructure tools/python: Libxl migration v2 infrastructure tools/python: Other migration infrastructure tools/python: Verification utility for v2 stream spec compliance tools/python: Conversion utility for legacy migration streams tools/libxl: Support converting a legacy stream to a v2 stream tools/libxl: Convert a legacy stream if needed tools/libxc+libxl+xl: Restore v2 streams tools/libxc+libxl+xl: Save v2 streams docs/libxl: Introduce CHECKPOINT_END to support migration v2 remus streams tools/libxl: Write checkpoint records into the stream tools/libx{c,l}: Introduce restore_callbacks.checkpoint() tools/libxl: Handle checkpoint records in a libxl migration v2 stream tools/libxc: Drop all XG_LIBXL_HVM_COMPAT code from libxc tools/libxl: Drop all knowledge of toolstack callbacks Ian Jackson (1): bsd-sys-queue-h-seddery: Massage `offsetof' Ross Lagerwall (3): tools/libxl: Migration v2 stream format tools/libxl: Infrastructure for reading a libxl migration v2 stream tools/libxl: Infrastructure for writing a v2 stream docs/specs/libxl-migration-stream.pandoc | 217 ++++++ tools/include/xen-external/bsd-sys-queue-h-seddery | 2 + tools/libxc/Makefile | 2 - tools/libxc/include/xenguest.h | 9 + tools/libxc/xc_sr_common.h | 12 +- tools/libxc/xc_sr_restore.c | 71 +- tools/libxc/xc_sr_restore_x86_hvm.c | 124 ---- tools/libxc/xc_sr_save_x86_hvm.c | 36 - tools/libxl/Makefile | 2 + tools/libxl/libxl.h | 19 + tools/libxl/libxl_aoutils.c | 15 + tools/libxl/libxl_convert_callout.c | 172 +++++ tools/libxl/libxl_create.c | 86 ++- tools/libxl/libxl_dom.c | 65 +- tools/libxl/libxl_internal.h | 192 ++++- tools/libxl/libxl_save_callout.c | 70 +- tools/libxl/libxl_save_helper.c | 33 +- tools/libxl/libxl_save_msgs_gen.pl | 9 +- tools/libxl/libxl_sr_stream_format.h | 58 ++ tools/libxl/libxl_stream_read.c | 731 ++++++++++++++++++++ tools/libxl/libxl_stream_write.c | 554 +++++++++++++++ tools/libxl/libxl_types.idl | 1 + tools/libxl/xl_cmdimpl.c | 9 +- tools/python/Makefile | 4 + tools/python/scripts/convert-legacy-stream | 678 ++++++++++++++++++ tools/python/scripts/verify-stream-v2 | 174 +++++ tools/python/setup.py | 1 + tools/python/xen/migration/legacy.py | 279 ++++++++ tools/python/xen/migration/libxc.py | 446 ++++++++++++ tools/python/xen/migration/libxl.py | 199 ++++++ tools/python/xen/migration/public.py | 21 + tools/python/xen/migration/tests.py | 54 ++ tools/python/xen/migration/verify.py | 37 + tools/python/xen/migration/xl.py | 12 + 34 files changed, 4014 insertions(+), 380 deletions(-) create mode 100644 docs/specs/libxl-migration-stream.pandoc create mode 100644 tools/libxl/libxl_convert_callout.c create mode 100644 tools/libxl/libxl_sr_stream_format.h create mode 100644 tools/libxl/libxl_stream_read.c create mode 100644 tools/libxl/libxl_stream_write.c create mode 100755 tools/python/scripts/convert-legacy-stream create mode 100755 tools/python/scripts/verify-stream-v2 create mode 100644 tools/python/xen/migration/__init__.py create mode 100644 tools/python/xen/migration/legacy.py create mode 100644 tools/python/xen/migration/libxc.py create mode 100644 tools/python/xen/migration/libxl.py create mode 100644 tools/python/xen/migration/public.py create mode 100644 tools/python/xen/migration/tests.py create mode 100644 tools/python/xen/migration/verify.py create mode 100644 tools/python/xen/migration/xl.py -- 1.7.10.4 _______________________________________________ Xen-devel mailing list Xen-devel@lists.xen.org http://lists.xen.org/xen-devel