All of lore.kernel.org
 help / color / mirror / Atom feed
* save image file format? and [RFC] tmem save/restore/migrate
@ 2009-06-17 23:00 Dan Magenheimer
  2009-06-18  0:17 ` John Levon
                   ` (2 more replies)
  0 siblings, 3 replies; 16+ messages in thread
From: Dan Magenheimer @ 2009-06-17 23:00 UTC (permalink / raw)
  To: Xen-Devel (E-mail); +Cc: John Levon

Is there any documentation on the format of the file/stream
used for save/restore/migrate?  Or is it just a sequence of
chunks of bytes pre-defined only by the ordering of the
save/restore code?

I found this 2006 xen-devel thread, but it doesn't look like
it (other than hvm additions) ever happened?  E.g. still
no versioning, self-identification, extensibility?

http://lists.xensource.com/archives/html/xen-devel/2006-09/msg00440.html

I'm starting to look at save/restore/migrate for tmem and will
need to communicate the following information via file/stream:

- pool id and characteristics (a small number of bytes of data),
  for some small number of pools
- for some classes of pools, some number of "pages" of data,
  each page consisting of a "handle" (128 bits) and PAGE_SIZE
  bytes of data associated with that handle
- for some of these pages of data, a handle+invalidate (see below)
- (optional) in some cases the pages will be pre-compressed;
  each can be decompressed on the source side and recompressed
  on the destination side, but this seems a sad waste of
  cpu cycles (though necessary if the compression algorithm
  were different on source and destination); if possible,
  save/transmit non-decompressed data

Note that for the pages of data, dirtying during migration
is not possible, however invalidation IS possible.  E.g.
unlike normally addressable pages which may be transmitted
multiple times during a live migration, a transmitted
tmem page (handle and data) will be transmitted only once,
but may be followed at some point with a handle+invalidate.

The ordering of tmem info/pages vs current saved info/data
is flexible, but the number of pages could be very large,
so for live migrate, transmission should NOT be postponed
until the "final pass" of normal page transmission (e.g.
after the domain has been paused on the source machine).

I also need code to verify that the destination has tmem
support and it is enabled.  Only PV domains can use tmem
so no HVM changes should be necessary.

Any pointers or suggestions welcome, especially any thoughts
on changes that might be required above libxc such as in
python code or (heaven forbid) ioemu/qemu.

Thanks for any help!
Dan

^ permalink raw reply	[flat|nested] 16+ messages in thread

end of thread, other threads:[~2009-06-22 14:28 UTC | newest]

Thread overview: 16+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-06-17 23:00 save image file format? and [RFC] tmem save/restore/migrate Dan Magenheimer
2009-06-18  0:17 ` John Levon
2009-06-18  8:51 ` Tim Deegan
2009-06-18 11:39   ` John Levon
2009-06-18 12:02     ` Stefano Stabellini
2009-06-18 12:05       ` Tim Deegan
2009-06-18 12:26         ` John Levon
2009-06-18 12:43           ` Tim Deegan
2009-06-18 12:47             ` John Levon
2009-06-18 14:18               ` Tim Deegan
2009-06-22 14:28                 ` Gianluca Guida
2009-06-18 12:54             ` Stefano Stabellini
2009-06-18 12:28         ` Stefano Stabellini
2009-06-18 23:25   ` Dan Magenheimer
2009-06-18 23:40     ` Keir Fraser
2009-06-18 10:30 ` Stefano Stabellini

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.