On 05/12/2015 05:35 PM, Andrew Cooper wrote:
Checkpointed streams need to signal the end of a consistent view of VM state,
and the start of the libxl data.

Ah, now I know what's CHECKPOINT record mean, the name is OK for me then.


Signed-off-by: Andrew Cooper <andrew.coop...@citrix.com>
CC: David Vrabel <david.vra...@citrix.com>
CC: Ian Campbell <ian.campb...@citrix.com>
CC: Ian Jackson <ian.jack...@eu.citrix.com>
CC: Wei Liu <wei.l...@citrix.com>
CC: Yang Hongyang <yan...@cn.fujitsu.com>

---

After discusions with David, we have come to the conclusion that a CHECKPOINT
record alone is sufficient for the remus case.  There is no functional need to
explicitly identify the stream as being of arbitrary length.
---
  docs/specs/libxc-migration-stream.pandoc |   23 ++++++++++++++++++++---
  tools/libxc/xc_sr_common.c               |    1 +
  tools/libxc/xc_sr_stream_format.h        |    1 +
  3 files changed, 22 insertions(+), 3 deletions(-)

diff --git a/docs/specs/libxc-migration-stream.pandoc 
b/docs/specs/libxc-migration-stream.pandoc
index 520240f..97edd7d 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,23 @@ The verify record contains no fields; its body_length is 0.

  \clearpage

+CHECKPOINT
+----------
+
+A checkpoint record indicates that the records thusfar 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.
+
+\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 @@ const char *dhdr_type_to_str(uint32_t type)
      [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.

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
http://lists.xen.org/xen-devel

Reply via email to