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

Michal Hocko
2013-04-04T15:20:28Z

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, send a message with 'unsubscribe linux-mm' in
the body to majordomo@kvack.org. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: email@kvack.org