From mboxrd@z Thu Jan 1 00:00:00 1970 From: Yang Hongyang Subject: Re: [PATCH v4 03/14] libxc/migration: Specification update for CHECKPOINT records Date: Wed, 13 May 2015 08:47:22 +0800 Message-ID: <55529F1A.2020304@cn.fujitsu.com> References: <1431429922-15344-1-git-send-email-yanghy@cn.fujitsu.com> <1431429922-15344-4-git-send-email-yanghy@cn.fujitsu.com> <5551EC84.9090504@citrix.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii"; Format="flowed" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <5551EC84.9090504@citrix.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: Andrew Cooper , xen-devel@lists.xen.org Cc: wei.liu2@citrix.com, ian.campbell@citrix.com, wency@cn.fujitsu.com, ian.jackson@eu.citrix.com, yunhong.jiang@intel.com, eddie.dong@intel.com, rshriram@cs.ubc.ca List-Id: xen-devel@lists.xenproject.org On 05/12/2015 08:05 PM, Andrew Cooper wrote: > On 12/05/15 12:25, Yang Hongyang wrote: >> 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 | 33 +++++++++++++++++++++++++++++--- >> tools/libxc/xc_sr_common.c | 1 + >> tools/libxc/xc_sr_stream_format.h | 1 + >> 3 files changed, 32 insertions(+), 3 deletions(-) >> >> diff --git a/docs/specs/libxc-migration-stream.pandoc b/docs/specs/libxc-migration-stream.pandoc >> index 520240f..842938c 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,33 @@ 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 >> + >> +A stream containing checkpoint records must have indicated itself as a >> +checkpointed stream in the Image Header. Conversely, a stream not >> +identified as checkpointed must not contain checkpoint records. > > The above paragraph needs deleting. It was my mistake for not deleting > it in my series. Ok, will delete it. > > ~Andrew > >> + >> +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 >> > > . > -- Thanks, Yang.