[CRIU] [PATCH] Attempt to restore cgroups

Tycho Andersen tycho.andersen at canonical.com
Thu Jul 10 06:39:20 PDT 2014


Hi Pavel,

On Thu, Jul 10, 2014 at 05:04:39PM +0400, Pavel Emelyanov wrote:
> On 07/09/2014 11:23 PM, Tycho Andersen wrote:
> 
> > Ah, yes, my mistake. Looks like it requires a fix in two places, below
> > is the revised patch.
> 
> OK, great! I've applied the patch, thank you.

Great!

> But there's one more issue. I believe we discussed one, but it's 
> still there. To demonstrate one I added some logging into the code:
> 
> --- a/cgroup.c
> +++ b/cgroup.c
> @@ -487,6 +487,7 @@ static int dump_cg_dirs(struct list_head *dirs, size_t n_dirs, CgroupDirEntry **
>                 cgroup_dir_entry__init(cde);
>  
>                 cde->path = cur->path;
> +               pr_debug("CG: %s (%d kids)\n", cur->path, cur->n_children);
>  
>                 cde->n_children = cur->n_children;
>                 if (cur->n_children > 0)
> @@ -521,6 +522,7 @@ static int dump_controllers(CgroupEntry *cg)
>                 ce->cnames = cur->controllers;
>                 ce->n_cnames = cur->n_controllers;
>                 ce->n_dirs = cur->n_heads;
> +               pr_debug("CG: cg from %s...\n", ce->cnames[0]);
>                 if (ce->n_dirs > 0)
>                         if (dump_cg_dirs(&cur->heads, cur->n_heads, &ce->dirs) < 0) {
>                                 xfree(cg->controllers);
> 
> 
> It shows what tree gets into the image files. And the cgroup01 test shows
> me this:
> 
> (00.007655) cg: CG: cg from name=zdtmtst...
> (00.007657) cg: CG: / (1 kids)
> (00.007663) cg: CG: /subcg (1 kids)
> (00.007666) cg: CG: /subcg/empty (0 kids)
> (00.007668) cg: CG: subcg (1 kids)
> (00.007671) cg: CG: subcg/empty (0 kids)
> 
> In other words -- the subcg and subcg/empty got into lists twice -- once as
> the / children entries and once as top-level ones.

Urgh. Ok, will take a look and send a patch.

Tycho


More information about the CRIU mailing list