[CRIU] [PATCH] Dismantle cgyard in non-detached restore mode.
Saied Kazemi
saied at google.com
Wed Mar 18 11:14:31 PDT 2015
Tycho,
Thanks for looking into this. I knew that we can't fini_cgroup() here but
because I am not familiar with the internals of cgroup restoration I just
put it there as a quick hack to get criu successfully dump and restore my
test container multiple times (didn't care about properties, etc.).
For a permanent fix, I have to defer to your judgement on the best way to
dismantle the cgyard in the non-detached mode. I agree with you that it's
a good idea to always fini_cgroup() as soon as we've fully restored
cgroups, regardless of detached/non-detached mode.
--Saied
On Wed, Mar 18, 2015 at 10:59 AM, Tycho Andersen <
tycho.andersen at canonical.com> wrote:
> Hi Saied,
>
> On Mon, Mar 16, 2015 at 12:03:37PM -0700, Saied Kazemi wrote:
> > If the --restore-detached command line option is not specified during
> > restore, CRIU should unmount and remove the temporary cgyard directory
> > tree before waiting for the restored process to exit. Otherwise, all
> > the temporary cgyard mount points will remain mounted and visible.
> >
> > Signed-off-by: Saied Kazemi <saied at google.com>
> > ---
> > cr-restore.c | 4 +++-
> > 1 file changed, 3 insertions(+), 1 deletion(-)
> >
> > diff --git a/cr-restore.c b/cr-restore.c
> > index 4a1fe4e..24d9f8b 100644
> > --- a/cr-restore.c
> > +++ b/cr-restore.c
> > @@ -1845,8 +1845,10 @@ static int restore_root_task(struct pstree_item
> *init)
> >
> > write_stats(RESTORE_STATS);
> >
> > - if (!opts.restore_detach && !opts.exec_cmd)
> > + if (!opts.restore_detach && !opts.exec_cmd) {
> > + fini_cgroup();
> > wait(NULL);
> > + }
>
> Good catch.
>
> I don't think we can do this here, because immediately after
> restore_root_task() is called, prepare_cgroup_properties() is called,
> which needs the cg yard to do its work. This brings up an interesting
> point though: currently if we don't --restore-detached, the cg
> properties aren't (attempted to be) restored until after the task
> exits, which is not good. Should the prepare_cgroup_properties() call
> be moved into restore_root_task()?
>
> Also, is there any reason not to fini_cgroup() all the time once we've
> prepare_cgroup_properties(), not just in non-detached mode?
>
> Tycho
>
> > return 0;
> >
> > --
> > 2.2.0.rc0.207.ga3a616c
> >
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openvz.org/pipermail/criu/attachments/20150318/359729cb/attachment.html>
More information about the CRIU
mailing list