[PATCH 0/2] In-kernel process restart

Andrey Mirkin major at openvz.org
Wed Nov 26 03:44:24 PST 2008


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


More information about the Containers mailing list