Kip's checkpointing code is now in the tree.
Matthew Dillon
dillon at apollo.backplane.com
Sun Oct 19 22:02:28 PDT 2003
Kip's checkpointing code is now in the tree. Basically you use it
by kldload'ing the checkpt.ko module, which should now be built
automatically. You then ^E the program you want to checkpoint,
and use the 'checkpt' utility in /usr/bin to resume it from the checkpoint
file. The program is *NOT* killed by this signal, it continues to run
after the checkpoint file(s) have been generated.
The checkpoint program is currently designed to work only with simple
programs... it will save the signal, descriptors references regular
files, the VM state (anonymous memory), as well as any nominal
file mappings, but it does not save sockets, pipes, or device descriptors,
so while you can checkpoint a pipe sequence you can't really restore it.
Please note that there are *SEVERE* security issues with this module.
The module is not loaded into the kernel by default and, when loaded,
can only be used by users in the wheel group. You can change the group
requirements with a sysctl (see the manual page for checkpt). The
security issues relate to the restoration of signals and file descriptors
(in particular, the restoration system call will convert file handles
into file descriptors which could potentially allow any file in the system
to be accessed). I've put in some basic security checks but they are not
meant to be all encompassing!
It is going into the tree now because Kip and I have done enough work on
it that anyone else interested in working on it can theoretically dig in.
Significant debugging is still in place. We've left it as a module to
facilitate debugging.
It should be useable for scientific applications now though I am not
entirely certain that FP registers are saved and restored (maybe someone
can play with that!). It should already work considerably better then
the linux equivalent what with the regular file descriptor save/restore
capability.
Any developer who wishes to work on the checkpointing module and related
code is welcome to!
-Matt
More information about the Kernel
mailing list