Checkpointing vkernels

Oliver Fromme check+jdikhn00rs568bpc at
Thu Feb 15 09:09:46 PST 2007

Matthew Dillon wrote:
 > :Just out of curiosity ...  I assume it is not possible
 > :to checkpoint a running vkernel, right?
 >    You can't at the moment, but only for two simple reasons:  First,
 >    the checkpointing code doesn't save and restore state for
 >    MAP_VPAGETABLE, and second, the vkernel needs a signal handler for
 >    the checkpoint restore to re-create the VM spaces for all of its
 >    virtualized user processes.
 >    Neither of these is difficult to do.  Saving the state for a 
 >    file-backed MAP_VPAGETABLE only requires saving the page table
 >    directory offset and mapping type.  And writing a signal handler
 >    to re-create the VM spaces for all the virtualized user processes
 >    is just as easy, because the VM spaces are all mapped as VPAGETABLE's
 >    on the same physical memory backing file and the vkernel already knows 
 >    the page directory offset for each one.

Cool, I didn't think that it would be relatively easy to
implement that.

I think it would be quite useful to be able to suspend a
vkernel and later resume it, e.g. after a reboot of the
physical machine, or even after moving the checkpoint file
and the vkernel's FS image to a different physical machine.

It would break any existing network connections, though,
I guess (i.e. through vke).

Best regards

Oliver Fromme,  secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing
Dienstleistungen mit Schwerpunkt FreeBSD:

Any opinions expressed in this message may be personal to the author
and may not necessarily reflect the opinions of secnetix in any way.

More information about the Kernel mailing list