Messages in this thread | | | From | Andrey Mirkin <> | Subject | Re: [PATCH 0/2] In-kernel process restart | Date | Wed, 26 Nov 2008 15:44:24 +0400 |
| |
On Tuesday 25 November 2008 23:02 Oren Laadan wrote: > Andrey Mirkin wrote: > > These patchset introduces OpenVZ kernel based restart procedure on top of > > Oren's checkpoint/restart patchset v9. > > > > For restarting a set of processes one will need to call sys_restart() > > once with new flag CR_CTX_RSTR_IN_KERNEL. All work will be done in kernel > > in this case. > > > > Small changes to image format are required to make in-kernel process > > creation more easy. > > > > Oren, please take a look on this patchset. I've tried to port OpenVZ > > functionality on top of yours with minimal changes. > > Thanks, Andrey. The patch looks simple and good. > > Did you look at my (user-space) process creation code ? specifically, it > uses the task-pids array (that is saved during checkpoint) to figure out > how many children a task has to spawn and their corresponding pids.
Yes, I've take a look on mktree tool. The algorithm of process creation is quite clear.
> Is there a particular reason that you chose not to use that data during > restart ? eventually, you'll need to add the rest of it, too, to the task > data, like you did with the number of children in this patch.
Agree, I'll rework my patchset to use already existing data.
> Instead, since the data is available and the logic is available, we can > have each new thread call do_restart_task(), and the container init > should call do_restart_root(). > > What do you think ? I can go ahead and make the changes on top of your > patch.
I'll take a closer look on these functions and maybe we can use them for created threads too. But from our experience during in-kernel process creation and restore it is needed to perfrorm some restore procedures when process is inactive. That is why I think we can't reuse all existing code for in-kernel restart. Anyway I'll check everything once again.
Andrey
| |