From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Xen-devel <xen-devel@lists.xen.org>
Cc: Wei Liu <wei.liu2@citrix.com>,
Ian Campbell <Ian.Campbell@citrix.com>,
Wen Congyang <wency@cn.fujitsu.com>,
Andrew Cooper <andrew.cooper3@citrix.com>,
Ian Jackson <Ian.Jackson@eu.citrix.com>,
Yang Hongyang <yanghy@cn.fujitsu.com>
Subject: [PATCH v2 00/27] Libxl migration v2
Date: Thu, 9 Jul 2015 19:26:26 +0100 [thread overview]
Message-ID: <1436466413-25867-1-git-send-email-andrew.cooper3@citrix.com> (raw)
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
next reply other threads:[~2015-07-09 18:26 UTC|newest]
Thread overview: 65+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-07-09 18:26 Andrew Cooper [this message]
2015-07-09 18:26 ` [PATCH v2 01/27] bsd-sys-queue-h-seddery: Massage `offsetof' Andrew Cooper
2015-07-10 9:32 ` Ian Campbell
2015-07-09 18:26 ` [PATCH v2 02/27] tools/libxc: Always compile the compat qemu variables into xc_sr_context Andrew Cooper
2015-07-09 18:26 ` [PATCH v2 03/27] tools/libxl: Introduce ROUNDUP() Andrew Cooper
2015-07-09 18:26 ` [PATCH v2 04/27] tools/libxl: Introduce libxl__kill() Andrew Cooper
2015-07-10 1:34 ` Yang Hongyang
2015-07-10 8:56 ` Andrew Cooper
2015-07-10 9:08 ` Wei Liu
2015-07-10 9:25 ` Andrew Cooper
2015-07-10 9:34 ` Ian Campbell
2015-07-09 18:26 ` [PATCH v2 05/27] tools/libxl: Stash all restore parameters in domain_create_state Andrew Cooper
2015-07-09 18:26 ` [PATCH v2 06/27] tools/libxl: Split libxl__domain_create_state.restore_fd in two Andrew Cooper
2015-07-10 9:37 ` Ian Campbell
2015-07-09 18:26 ` [PATCH v2 07/27] tools/libxl: Extra management APIs for the save helper Andrew Cooper
2015-07-10 9:41 ` Ian Campbell
2015-07-10 9:52 ` Andrew Cooper
2015-07-09 18:26 ` [PATCH v2 08/27] tools/xl: Mandatory flag indicating the format of the migration stream Andrew Cooper
2015-07-09 18:26 ` [PATCH v2 09/27] docs: Libxl migration v2 stream specification Andrew Cooper
2015-07-10 9:46 ` Ian Campbell
2015-07-09 18:26 ` [PATCH v2 10/27] tools/python: Libxc migration v2 infrastructure Andrew Cooper
2015-07-09 18:26 ` [PATCH v2 11/27] tools/python: Libxl " Andrew Cooper
2015-07-09 18:26 ` [PATCH v2 12/27] tools/python: Other migration infrastructure Andrew Cooper
2015-07-10 9:48 ` Ian Campbell
2015-07-09 18:26 ` [PATCH v2 13/27] tools/python: Verification utility for v2 stream spec compliance Andrew Cooper
2015-07-09 18:26 ` [PATCH v2 14/27] tools/python: Conversion utility for legacy migration streams Andrew Cooper
2015-07-09 18:26 ` [PATCH v2 15/27] tools/libxl: Migration v2 stream format Andrew Cooper
2015-07-10 9:49 ` Ian Campbell
2015-07-09 18:26 ` [PATCH v2 16/27] tools/libxl: Infrastructure for reading a libxl migration v2 stream Andrew Cooper
2015-07-10 10:23 ` Ian Campbell
2015-07-10 10:47 ` Andrew Cooper
2015-07-10 11:16 ` Ian Jackson
2015-07-10 11:25 ` Ian Campbell
2015-07-10 12:28 ` Andrew Cooper
2015-07-10 12:46 ` Ian Jackson
2015-07-10 12:50 ` Andrew Cooper
2015-07-10 12:17 ` Ian Jackson
2015-07-10 12:56 ` Andrew Cooper
2015-07-10 13:09 ` Ian Jackson
2015-07-09 18:26 ` [PATCH v2 17/27] tools/libxl: Support converting a legacy stream to a " Andrew Cooper
2015-07-10 10:28 ` Ian Campbell
2015-07-10 10:39 ` Andrew Cooper
2015-07-10 12:28 ` Ian Jackson
2015-07-09 18:26 ` [PATCH v2 18/27] tools/libxl: Convert a legacy stream if needed Andrew Cooper
2015-07-10 10:31 ` Ian Campbell
2015-07-10 12:41 ` Ian Jackson
2015-07-09 18:26 ` [PATCH v2 19/27] tools/libxc+libxl+xl: Restore v2 streams Andrew Cooper
2015-07-10 10:45 ` Ian Campbell
2015-07-09 18:26 ` [PATCH v2 20/27] tools/libxl: Infrastructure for writing a v2 stream Andrew Cooper
2015-07-10 11:10 ` Ian Campbell
2015-07-09 18:26 ` [PATCH v2 21/27] tools/libxc+libxl+xl: Save v2 streams Andrew Cooper
2015-07-10 10:57 ` Ian Campbell
2015-07-09 18:26 ` [PATCH v2 22/27] docs/libxl: Introduce CHECKPOINT_END to support migration v2 remus streams Andrew Cooper
2015-07-10 10:59 ` Ian Campbell
2015-07-09 18:26 ` [PATCH v2 23/27] tools/libxl: Write checkpoint records into the stream Andrew Cooper
2015-07-10 11:02 ` Ian Campbell
2015-07-10 11:47 ` Wei Liu
2015-07-09 18:26 ` [PATCH v2 24/27] tools/libx{c, l}: Introduce restore_callbacks.checkpoint() Andrew Cooper
2015-07-10 11:13 ` Ian Campbell
2015-07-09 18:26 ` [PATCH v2 25/27] tools/libxl: Handle checkpoint records in a libxl migration v2 stream Andrew Cooper
2015-07-10 11:18 ` Ian Campbell
2015-07-10 14:34 ` Andrew Cooper
2015-07-09 18:26 ` [PATCH v2 26/27] tools/libxc: Drop all XG_LIBXL_HVM_COMPAT code from libxc Andrew Cooper
2015-07-09 18:26 ` [PATCH v2 27/27] tools/libxl: Drop all knowledge of toolstack callbacks Andrew Cooper
2015-07-10 3:01 ` [PATCH v2 00/27] Libxl migration v2 Yang Hongyang
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1436466413-25867-1-git-send-email-andrew.cooper3@citrix.com \
--to=andrew.cooper3@citrix.com \
--cc=Ian.Campbell@citrix.com \
--cc=Ian.Jackson@eu.citrix.com \
--cc=wei.liu2@citrix.com \
--cc=wency@cn.fujitsu.com \
--cc=xen-devel@lists.xen.org \
--cc=yanghy@cn.fujitsu.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).