[GSoC] Making vkernels checkpointable - final report
pdziepak at quarnos.org
Tue Sep 24 18:17:45 PDT 2013
During the last week of this year Google Summer of Code I continued
testing the code, including more tests of 32 bit versions of both
vkernel and the "host" kernel (during the GSoC I used mostly 64 bit
versions). Fortunately, I didn't came across any serious problems.
Moreover, I updated the sys_checkpoint(2) manpage removing information
about the limitations that are no longer present and adding
implementation notes that explain the format of the checkpoint files.
The goal of my project is completed. It is possible now to chekpoint a
running vkernel together with its virtual processes and then restore
it. I tried to make it possible by enhancing checkpointing
implementation rather than doing everything inside vkernel checkpoint
signal handler so that not only vkernels can benefit from these
modifications. Apart from some minor fixes, making checkpoint file
format more flexible and future-proof, now all MAP_VPAGETABLE mappings
are properly supported as well as kqueues and threaded programs.
I've checked and there are no merge conflicts with the master. There
also doesn't seem to be any problems with the kernels (and vkernels)
built after merge, but undoubtedly vkernels taking advantage from
visualizing extensions cannot be currently checkpointed. There is also
matter of dirfs which was recently added. I haven't really looked into
it yet but it seems like it will also require some work to get it
working with checkpointed vkernels.
I am willing to continue working on the checkpointing code and the
vkernels and make it work with these recent additions hardware
virtualization and dirfs. Due to previous arrangements in October I
would have much less time for it that I'd wish to have but still I
expect to make some progress.
More information about the Kernel