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 -- Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing Dienstleistungen mit Schwerpunkt FreeBSD: http://www.secnetix.de/bsd Any opinions expressed in this message may be personal to the author and may not necessarily reflect the opinions of secnetix in any way.
