[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] RE: [PATCH v4] docs/designs: re-work the xenstore migration document...
> -----Original Message----- > From: Julien Grall <julien@xxxxxxx> > Sent: 28 April 2020 10:06 > To: Paul Durrant <paul@xxxxxxx>; xen-devel@xxxxxxxxxxxxxxxxxxxx > Cc: Paul Durrant <pdurrant@xxxxxxxxxx>; Juergen Gross <jgross@xxxxxxxx>; > Andrew Cooper > <andrew.cooper3@xxxxxxxxxx>; George Dunlap <george.dunlap@xxxxxxxxxx>; Ian > Jackson > <ian.jackson@xxxxxxxxxxxxx>; Jan Beulich <jbeulich@xxxxxxxx>; Stefano > Stabellini > <sstabellini@xxxxxxxxxx>; Wei Liu <wl@xxxxxxx> > Subject: Re: [PATCH v4] docs/designs: re-work the xenstore migration > document... > > Hi Paul, > > On 27/04/2020 16:50, Paul Durrant wrote: > > diff --git a/docs/designs/xenstore-migration.md > > b/docs/designs/xenstore-migration.md > > index 6ab351e8fe..51d8b85171 100644 > > --- a/docs/designs/xenstore-migration.md > > +++ b/docs/designs/xenstore-migration.md > > @@ -3,254 +3,400 @@ > > ## Background > > > > The design for *Non-Cooperative Migration of Guests*[1] explains that > > extra > > -save records are required in the migrations stream to allow a guest running > > -PV drivers to be migrated without its co-operation. Moreover the save > > -records must include details of registered xenstore watches as well as > > -content; information that cannot currently be recovered from `xenstored`, > > -and hence some extension to the xenstore protocol[2] will also be required. > > - > > -The *libxenlight Domain Image Format* specification[3] already defines a > > -record type `EMULATOR_XENSTORE_DATA` but this is not suitable for > > -transferring xenstore data pertaining to the domain directly as it is > > -specified such that keys are relative to the path > > -`/local/domain/$dm_domid/device-model/$domid`. Thus it is necessary to > > -define at least one new save record type. > > +save records are required in the migrations stream to allow a guest > > running PV > > +drivers to be migrated without its co-operation. Moreover the save records > > must > > +include details of registered xenstore watches as well ascontent; > > information > > s/ascontent/as content/ > Oh yes. > [...] > > > +### END > > + > > +The end record marks the end of the image, and is the final record > > +in the stream. > > > > ``` > > - 0 1 2 3 octet > > -+-------+-------+-------+-------+ > > -| NODE_DATA | > > -+-------------------------------+ > > -| path length | > > -+-------------------------------+ > > -| path data | > > -... > > -| pad (0 to 3 octets) | > > -+-------------------------------+ > > -| perm count (N) | > > -+-------------------------------+ > > -| perm0 | > > -+-------------------------------+ > > -... > > -+-------------------------------+ > > -| permN | > > -+-------------------------------+ > > -| value length | > > -+-------------------------------+ > > -| value data | > > -... > > -| pad (0 to 3 octets) | > > -+-------------------------------+ > > + 0 1 2 3 4 5 6 7 octet > > ++-------+-------+-------+-------+-------+-------+-------+-------+ > > ``` > > > > -where perm0..N are formatted as follows: > > > > +The end record contains no fields; its body length is 0. > > + > > +\pagebreak > > + > > +### GLOBAL_DATA > > + > > +This record is only relevant for live update. It contains details of global > > +xenstored state that needs to be restored. > > Reading this paragraph, it sounds like GLOBAL_DATA should always be > present in the liveupdate stream. However ... > > [...] > > > -path length and value length are specified in octets (excluding the NUL > > -terminator of the path). perm should be one of the ASCII values `w`, `r`, > > -`b` or `n` as described in [2]. All pad values should be 0. > > -All paths should be absolute (i.e. start with `/`) and as described in > > -[2]. > > +| Field | Description | > > +|----------------|----------------------------------------------| > > +| `rw-socket-fd` | The file descriptor of the socket accepting | > > +| | read-write connections | > > +| | | > > +| `ro-socket-fd` | The file descriptor of the socket accepting | > > +| | read-only connections | > > > > +xenstored will resume in the original process context. Hence > > `rw-socket-fd` and > > +`ro-socket-fd` simply specify the file descriptors of the sockets. > > ... sockets may not always be available in XenStored. So should we > reserve a value for "not in-use socket"? > Ok. > [...] > > > -wpath length and token length are specified in octets (excluding the NUL > > -terminator). The wpath should be as described for the `WATCH` operation in > > -[2]. The token is an arbitrary string of octets not containing any NUL > > -values. > > > > +| Field | Description | > > +|-------------|-------------------------------------------------| > > +| `conn-id` | A non-zero number used to identify this | > > +| | connection in subsequent connection-specific | > > +| | records | > > +| | | > > +| `conn-type` | 0x0000: shared ring | > > +| | 0x0001: socket | > > I would write "0x0002 - 0xFFFF: reserved for future use" to match the > rest of the specification. > Ok. Paul
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |