Date: Sun Jun 07 2009 - 18:30:59 PDT
Hello, Professor: I have read the paper"The Design and Implementation of Berkeley Labí»s Linux Checkpoint/Restart" for several times and intervals between these times I was reading the source code.However, until now I still can not understand the user library "callback" mechanism. What does these callbacks exactly used to do? To provide the user of blcr with interface to do something relative to the specified application program? Or just used to do the real checkpoint stuff? In checkpoint.c ,I noticed that before we issue the request to build the task list that we want to checkpoint, the callback "my_cb" was registered: /* Register our callback */ cb_id = cr_register_callback(&my_cb, NULL, CR_THREAD_CONTEXT); my_cb() invokes cr_checkpoint(): cr_checkpoint() will not invoke do_checkpoint()to do the real dump work until all the callbacks in the callbacks array which is got from the thread-specific info of current thread. so what does these callback used to do? By the way, the function cr_dump_self() seems to dump only the current process.how the other tasks in the req->task_list been dumped?