Re: [RFC][PATCH 5/7] cgroup: make sure parent won't be destroyedbefore its children

From: Michal Hocko
Date: Thu Apr 04 2013 - 11:20:51 EST


On Thu 04-04-13 06:53:53, Tejun Heo wrote:
> Hey,
>
> On Thu, Apr 04, 2013 at 01:37:50PM +0200, Michal Hocko wrote:
> > On Wed 03-04-13 17:13:08, Li Zefan wrote:
> > > Suppose we rmdir a cgroup and there're still css refs, this cgroup won't
> > > be freed. Then we rmdir the parent cgroup, and the parent is freed due
> > > to css ref draining to 0. Now it would be a disaster if the child cgroup
> > > tries to access its parent.
> >
> > Hmm, I am not sure what is the correct layer for this to handle - cgroup
> > core or memcg. But we have enforced that in mem_cgroup_css_online where
> > we take an additional reference to the memcg.
> >
> > Handling it in the memcg code would have an advantage of limiting an
> > additional reference only to use_hierarchy cases which is sufficient
> > as we never touch the parent otherwise (parent_mem_cgroup).
>
> But what harm does an additional reference do?

No harm at all. I just wanted to be sure that this is not yet another
"for memcg" hack. So if this is useful for other controllers then I have
no objections of course.

> And given that there are cgroup core interfaces which access ->parent,
> I think it'd be a good idea that parent always exists while there are
> children.
>
> Thanks.

--
Michal Hocko
SUSE Labs
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/