[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH 07/29] docs: libxl migration stream specification



On Wed, 2014-09-10 at 18:10 +0100, Andrew Cooper wrote:

Please run a spell checker over this ("responsibile" was the first one I
spotted, "resonsible" was the second)

> +Purpose
> +-------

I think this (and the equivalent section in the libxc level doc) should
be moved to the commit log. It's useful right now as a motivator for the
change but in a years time it will just be some random fluff in a doc
that everyone has to page past to get to the interesting bits.

> +This design addresses the above points, allowing for a completely
> +self-contained, extensible stream with each layer responsibile for its own
> +appropriate information.
> +
> +
> +Not Yet Included
> +----------------
> +
> +The following features are not yet fully specified and will be
> +included in a future draft.
> +
> +* Remus
> +
> +* ARM
> +
> +
> +Overview
> +========
> +
> +The image format consists of a _Header_, followed by 1 or more _Records_.
> +Each record consists of a type and length field, followed by any 
> type-specific
> +data.
> +
> +\clearpage
> +
> +Header
> +======
> +
> +The header identifies the stream as a `libxl` stream, including the version 
> of
> +this specification that it complies with.
> +
> +All fields in this header shall be in _big-endian_ byte order, regardless of
> +the setting of the endianness bit.
> +
> +     0     1     2     3     4     5     6     7 octet
> +    +-------------------------------------------------+
> +    | ident                                           |
> +    +-----------------------+-------------------------+
> +    | version               | options                 |
> +    +-----------------------+-------------------------+
> +
> +--------------------------------------------------------------------
> +Field       Description
> +----------- --------------------------------------------------------
> +ident       0x4c6962786c466d74 ("LibxlFmt" in ASCII).
> +
> +version     0x00000002.  The version of this specification.
> +
> +options     bit 0: Endianness.    0 = little-endian, 1 = big-endian.
> +
> +            bit 1: Legacy Format. If set, this stream was created by
> +                                  the legacy conversion tool.

Are such streams otherwise distinguishable from a stream which was
created directly? Should anything care about this?

I fear this is going to be used to paper over shortcomings in the
conversion tool somehow, but I suppose I'll see later in the series.

> +LIBXC\_CONTEXT
> +--------------
> +
> +A libxc context record is a marker, indicating that the stream should be
> +handed to `xc_domain_restore()`.  `libxc` shall be resonsible for reading its
> +own image format from the stream.
> +
> +     0     1     2     3     4     5     6     7 octet
> +    +-------------------------------------------------+
> +
> +The libxc context record contains no fields; its body_length is 0[^1].
> +
> +
> +[^1]: The sending side cannot calculate ahead of time how much data `libxc`
> +might write into the stream, especially for live migration where the quantity
> +of data is partially proportional to the elapsed time.

I think this deserves to be in the main text and not a footnote
(assuming that's what ^1 is). I think it should probably be expanded to
explain how a toolstack can actually treat this, which I assume is to
assume that xc_domain_restore will consume exactly its own business and
then return.

Something somewhere also ought to say what libxc will have done on
error, which is presumably to have left the stream in some indeterminate
state and almost certainly not at the next libxl record boundary.

> +
> +XENSTORE\_DATA
> +-------------
> +
> +A record containing xenstore key/value pairs of data.

In what format?

> +     0     1     2     3     4     5     6     7 octet
> +    +-------------------------------------------------+
> +    | xenstore key/value pairs                        |
> +    ...
> +    +-------------------------------------------------+
> +

Ian.


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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.