All of lore.kernel.org
 help / color / mirror / Atom feed
From: Andrew Cooper <andrew.cooper3@citrix.com>
To: Yang Hongyang <yanghy@cn.fujitsu.com>, 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
Subject: Re: [PATCH v4 03/14] libxc/migration: Specification update for CHECKPOINT records
Date: Tue, 12 May 2015 13:05:24 +0100	[thread overview]
Message-ID: <5551EC84.9090504@citrix.com> (raw)
In-Reply-To: <1431429922-15344-4-git-send-email-yanghy@cn.fujitsu.com>

On 12/05/15 12:25, Yang Hongyang wrote:
> From: Andrew Cooper <andrew.cooper3@citrix.com>
>
> 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 <andrew.cooper3@citrix.com>
> Signed-off-by: David Vrabel <david.vrabel@citrix.com>
> Signed-off-by: Yang Hongyang <yanghy@cn.fujitsu.com>
> CC: Ian Campbell <Ian.Campbell@citrix.com>
> CC: Ian Jackson <Ian.Jackson@eu.citrix.com>
> CC: Wei Liu <wei.liu2@citrix.com>
> ---
>  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.

~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
>  

  reply	other threads:[~2015-05-12 12:05 UTC|newest]

Thread overview: 28+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-12 11:25 [PATCH v4 00/14] Misc patches to aid migration v2 Remus support Yang Hongyang
2015-05-12 11:25 ` [PATCH v4 01/14] libxc/migration: Be rather stricter with illformed callers Yang Hongyang
2015-05-12 11:25 ` [PATCH v4 02/14] libxc/save: Adjust stream-position callbacks for checkpointed streams Yang Hongyang
2015-05-12 11:25 ` [PATCH v4 03/14] libxc/migration: Specification update for CHECKPOINT records Yang Hongyang
2015-05-12 12:05   ` Andrew Cooper [this message]
2015-05-13  0:47     ` Yang Hongyang
2015-05-12 11:25 ` [PATCH v4 04/14] libxc/migration: Pass checkpoint information into the save algorithm Yang Hongyang
2015-05-12 11:25 ` [PATCH v4 05/14] tools/libxc: unused attribute in DECLARE_HYPERCALL_BUFFER_SHADOW Yang Hongyang
2015-05-12 11:25 ` [PATCH v4 06/14] tools/libxc: add a check in xc_hypercall_buffer_free_pages macro Yang Hongyang
2015-05-12 12:10   ` Andrew Cooper
2015-05-13  0:48     ` Yang Hongyang
2015-05-12 11:25 ` [PATCH v4 07/14] libxc/save: introduce setup() and cleanup() on save Yang Hongyang
2015-05-12 12:11   ` Andrew Cooper
2015-05-13  0:48     ` Yang Hongyang
2015-05-12 11:25 ` [PATCH v4 08/14] libxc/save: rename to_send to dirty_bitmap Yang Hongyang
2015-05-12 12:11   ` Andrew Cooper
2015-05-12 11:25 ` [PATCH v4 09/14] libxc/save: adjust the memory allocation for migration Yang Hongyang
2015-05-12 12:14   ` Andrew Cooper
2015-05-13  0:49     ` Yang Hongyang
2015-05-12 11:25 ` [PATCH v4 10/14] libxc/save: remove bitmap param from send_some_pages Yang Hongyang
2015-05-12 12:15   ` Andrew Cooper
2015-05-12 11:25 ` [PATCH v4 11/14] libxc/save: rename send_some_pages to send_dirty_pages Yang Hongyang
2015-05-12 12:15   ` Andrew Cooper
2015-05-12 11:25 ` [PATCH v4 12/14] libxc/save: reuse send_dirty_pages() in send_all_pages() Yang Hongyang
2015-05-12 12:17   ` Andrew Cooper
2015-05-12 11:25 ` [PATCH v4 13/14] libxc/restore: introduce process_record() Yang Hongyang
2015-05-12 11:25 ` [PATCH v4 14/14] libxc/restore: split read/handle qemu info Yang Hongyang
2015-05-12 12:20   ` Andrew Cooper

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=5551EC84.9090504@citrix.com \
    --to=andrew.cooper3@citrix.com \
    --cc=eddie.dong@intel.com \
    --cc=ian.campbell@citrix.com \
    --cc=ian.jackson@eu.citrix.com \
    --cc=rshriram@cs.ubc.ca \
    --cc=wei.liu2@citrix.com \
    --cc=wency@cn.fujitsu.com \
    --cc=xen-devel@lists.xen.org \
    --cc=yanghy@cn.fujitsu.com \
    --cc=yunhong.jiang@intel.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.