From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yang Hongyang Subject: [PATCH v5 03/14] libxc/migration: Specification update for CHECKPOINT records Date: Wed, 13 May 2015 09:53:53 +0800 Message-ID: <1431482044-21286-4-git-send-email-yanghy@cn.fujitsu.com> References: <1431482044-21286-1-git-send-email-yanghy@cn.fujitsu.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <1431482044-21286-1-git-send-email-yanghy@cn.fujitsu.com> List-Unsubscribe: , List-Post: List-Help: List-Subscribe: , Sender: xen-devel-bounces@lists.xen.org Errors-To: xen-devel-bounces@lists.xen.org To: xen-devel@lists.xen.org Cc: wei.liu2@citrix.com, ian.campbell@citrix.com, wency@cn.fujitsu.com, andrew.cooper3@citrix.com, yunhong.jiang@intel.com, eddie.dong@intel.com, rshriram@cs.ubc.ca, ian.jackson@eu.citrix.com List-Id: xen-devel@lists.xenproject.org From: Andrew Cooper Checkpointed streams need to signal the end of a consistent view of VM state, and the start of the libxl data. Signed-off-by: Andrew Cooper Signed-off-by: David Vrabel Signed-off-by: Yang Hongyang CC: Ian Campbell CC: Ian Jackson CC: Wei Liu --- docs/specs/libxc-migration-stream.pandoc | 29 ++++++++++++++++++++++++++--- tools/libxc/xc_sr_common.c | 1 + tools/libxc/xc_sr_stream_format.h | 1 + 3 files changed, 28 insertions(+), 3 deletions(-) diff --git a/docs/specs/libxc-migration-stream.pandoc b/docs/specs/libxc-migration-stream.pandoc index 520240f..68fa513 100644 --- a/docs/specs/libxc-migration-stream.pandoc +++ b/docs/specs/libxc-migration-stream.pandoc @@ -37,8 +37,6 @@ Not Yet Included The following features are not yet fully specified and will be included in a future draft. -* Remus - * Page data compression. * ARM @@ -227,7 +225,9 @@ type 0x00000000: END 0x0000000D: VERIFY - 0x0000000E - 0x7FFFFFFF: Reserved for future _mandatory_ + 0x0000000E: CHECKPOINT + + 0x0000000F - 0x7FFFFFFF: Reserved for future _mandatory_ records. 0x80000000 - 0xFFFFFFFF: Reserved for future _optional_ @@ -578,6 +578,29 @@ The verify record contains no fields; its body_length is 0. \clearpage +CHECKPOINT +---------- + +A checkpoint record indicates that all the preceding records in the stream +represent a consistent view of VM state. + + 0 1 2 3 4 5 6 7 octet + +-------------------------------------------------+ + +The checkpoint record contains no fields; its body_length is 0 + +If the stream is embedded in a higher level toolstack stream, the +CHECKPOINT record marks the end of the libxc portion of the stream +and the stream is handed back to the higher level for further +processing. + +The higher level stream may then hand the stream back to libxc to +process another set of records for the next consistent VM state +snapshot. This next set of records may be terminated by another +CHECKPOINT record or an END record. + +\clearpage + Layout ====== diff --git a/tools/libxc/xc_sr_common.c b/tools/libxc/xc_sr_common.c index 59e0c5d..945cfa6 100644 --- a/tools/libxc/xc_sr_common.c +++ b/tools/libxc/xc_sr_common.c @@ -34,6 +34,7 @@ static const char *mandatory_rec_types[] = [REC_TYPE_TOOLSTACK] = "Toolstack", [REC_TYPE_X86_PV_VCPU_MSRS] = "x86 PV vcpu msrs", [REC_TYPE_VERIFY] = "Verify", + [REC_TYPE_CHECKPOINT] = "Checkpoint", }; const char *rec_type_to_str(uint32_t type) diff --git a/tools/libxc/xc_sr_stream_format.h b/tools/libxc/xc_sr_stream_format.h index d116ca6..6d0f8fd 100644 --- a/tools/libxc/xc_sr_stream_format.h +++ b/tools/libxc/xc_sr_stream_format.h @@ -74,6 +74,7 @@ struct xc_sr_rhdr #define REC_TYPE_TOOLSTACK 0x0000000bU #define REC_TYPE_X86_PV_VCPU_MSRS 0x0000000cU #define REC_TYPE_VERIFY 0x0000000dU +#define REC_TYPE_CHECKPOINT 0x0000000eU #define REC_TYPE_OPTIONAL 0x80000000U -- 1.9.1