file handles in checkpt and sys_checkpoint
Matthew Dillon
dillon at apollo.backplane.com
Fri Jun 29 15:38:55 PDT 2007
:Hi, friends. I love DragonFly, I do. Well done. Question about
:checkpointing.
:
:There's a bit of a catch-22 when using sys_checkpoint(). The file
:descriptor which is passed into sys_checkpoint is serialized along
:with everything else. So, when I go to resume, I have to be sure
:the file resides at the same path where it was created.
:
:This poses a problem for compressing the file, which I had been
:hoping to do. Any one know of a way to keep the fd from being
:serialized? The only way I can think of to get around this is to
:alter elf_getfiles in the kernel to ignore files which can't be
:reloaded.
:
:_why
Hmm. I think this would be pretty easy to do, but it is slightly
more complex then it appears. But I can solve another little niggling
problem with the checkpointing code at the same time which is when
you checkpoint a program which has been checkpoint-restored, it needs
BOTH checkpoint files to properly restore. This iterates. So if you
checkpoint a program, then restore from the checkpoint, then checkpoint it
again, then restore from the new checkpoint, and so forth... ALL the
checkpoint files must exist to properly restore the program.
I may be able to fix this and fix the issue you brought up quickly. I am
going to give it a shot. The solution is to flag the file that
represents the checkpoint restore file, and to treat
checkpoint-file-backed data as anonymous memory when re-checkpointing
a program to force it to be written out in full (thus removing the
dependancy on earlier checkpoints).
-Matt
Matthew Dillon
<dillon at backplane.com>
More information about the Users
mailing list