All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] lazy instance resume
@ 2013-04-04  7:23 Thomas Knauth
  0 siblings, 0 replies; only message in thread
From: Thomas Knauth @ 2013-04-04  7:23 UTC (permalink / raw)
  To: qemu-devel

[-- Attachment #1: Type: text/plain, Size: 1365 bytes --]

Dear all,

I'm interested in fast instance resume times, i.e., a migration where the
source is a file on disk. The basic idea is that we don't need to read the
entire memory dump from disk to kick off execution. This is similar to what
is, for example, done with post-copy live migration. Resume from disk is
admittedly less complex, but the underlying principle is the same.

My current idea is to write an exhaustive memory dump on suspend.
Exhaustive because the dump generated by qemu applies some optimizations to
reduce the dump's size, e.g., run-length-encoding of all-0 pages. To speed
up the resume time, the exhaustive memory dump would be mmap()-ed for the
correct MemoryRegion (MR), e.g., "pc.ram".

My quick and dirty prototype seems to work. I would nevertheless like to
elicit feedback from more experienced people: which parts of qemu may cease
to function, if the "pc.ram" MemoryRegion is an mmap()-ed file? Any trouble
I should suspect down the line?

Ideally, I would like to "pre-fault" pages in the mmap-ed region, to reduce
the guest's performance penalty at runtime. I'm also not sure about the
exact flags with which to mmap(). PROT_PRIVATE has the benefit not writing
intermediate changes to disk. On the other hand, with PROT_SHARED I would
not need to explicitly write a dump again at the next suspend.

Thanks for your feedback,
Thomas.

[-- Attachment #2: Type: text/html, Size: 1635 bytes --]

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2013-04-04  7:23 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2013-04-04  7:23 [Qemu-devel] lazy instance resume Thomas Knauth

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.