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-v3" git://xenbits.xen.org/people/andrewcoop/xen.git http://xenbits.xen.org/git-http/people/andrewcoop/xen.git No major changes over v2, but a lot of minor changes following review. 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 v2 A 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() AM tools/libxl: Introduce libxl__kill() A tools/libxl: Stash all restore parameters in domain_create_state A tools/libxl: Split libxl__domain_create_state.restore_fd in two M tools/libxl: Extra management APIs for the save helper N tools/libxl: Add save_helper_state pointers to libxl__xc_domain_{save,restore}() A tools/xl: Mandatory flag indicating the format of the migration stream A docs: Libxl migration v2 stream specification A tools/python: Libxc migration v2 infrastructure A tools/python: Libxl migration v2 infrastructure A tools/python: Other migration infrastructure A tools/python: Verification utility for v2 stream spec compliance A tools/python: Conversion utility for legacy migration streams A tools/libxl: Migration v2 stream format M tools/libxl: Infrastructure for reading a libxl migration v2 stream M tools/libxl: Infrastructure to convert a legacy 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 A docs/libxl: Introduce CHECKPOINT_END to support migration v2 remus streams AM 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 (24): 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/libxl: Add save_helper_state pointers to libxl__xc_domain_{save,restore}() 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: Infrastructure to convert a legacy 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 | 7 + 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 | 7 + tools/libxl/libxl.h | 19 + tools/libxl/libxl_aoutils.c | 15 + tools/libxl/libxl_convert_callout.c | 158 ++++ tools/libxl/libxl_create.c | 91 ++- tools/libxl/libxl_dom.c | 107 +-- tools/libxl/libxl_internal.h | 172 ++++- tools/libxl/libxl_no_convert_callout.c | 35 + tools/libxl/libxl_save_callout.c | 117 ++- 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 | 768 ++++++++++++++++++++ tools/libxl/libxl_stream_write.c | 525 +++++++++++++ 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 + 35 files changed, 4071 insertions(+), 429 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_no_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