DragonFly kernel List (threaded) for 2007-02
Re: Checkpointing vkernels
:Just out of curiosity ... I assume it is not possible
:to checkpoint a running vkernel, right?
:Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing
:Dienstleistungen mit Schwerpunkt FreeBSD: http://www.secnetix.de/bsd
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.