Ok, so it's late, I want to sleep. But here is what "works" with my personal
tree:
Checkpointing works everytime (afaik) when no thread is created.
When a thread is created, if this thread doesn't use any resource, it
will most likely be checkpointed (but how do you know if it really does
since it does nothing...)
When a thread needs a file, a socket, etc... it will probably make the
checkpoint segfault and the resulting image probably will be corrupted so
all data is lost (alternating log would be a good improvement). This could
partly be fixed with file descriptor save/restore hooks. However, sockets
might open to larger problems. However, if we go for a socket/file layer,
this would hopefully be fixed.
For a reason I don't know, just running SimpleHTTPServer segfaults uuu.
So, what's related to networking becomes quite unstable.
However, with very simple threads, we can take snapshots. For example, I
could display the time of the day in background and use a shell in
foreground. All this could be checkpointed. It's not 100% reliable, but
there is progress being done.
Jacques Mony
|