DragonFly kernel List (threaded) for 2003-09
Re: checkpoint/restart milestone 1
Kip Macy wrote:
: way. This provides you with functionality for doing that. So if your
: program/computer crashes the program can just restart from the last time
: it did a checkpoint.
: This could also be useful for debugging as well. If you have an
: application that starts doing something weird, you can just checkpoint
: it and send the checkpoint off to the developer.
Ah, sounds good! I looked into this idea some time ago, when
you can suspend a process, store it's state in an image file
and then you can use it whenever you want for reloading it
The only issue I had with such kind of thing was to do with the
state that the kernel keeps, like file descriptor tables, and
vnode references, which are invalidated after a reboot, because
a new table is created.
One way to solve this problem was to index into the filedesc
table and make out which files were open, save this information
in some sort part of the process image, and then when the
image is loaded, we recreate references to the files originally
referenced; although, this is just an overall perspective on the
topic. I am sure there were other roadblocks which I faced.
Anyway, this sounds ilke a really good idea! :-)