Re: [RFC][PATCH 1/2] CGROUP ID and Hierarchy Code

From: KAMEZAWA Hiroyuki
Date: Thu Nov 27 2008 - 21:21:59 EST


On Fri, 28 Nov 2008 10:35:33 +0900
KAMEZAWA Hiroyuki <kamezawa.hiroyu@xxxxxxxxxxxxxx> wrote:

> On Fri, 28 Nov 2008 09:28:33 +0800
> Li Zefan <lizf@xxxxxxxxxxxxxx> wrote:

> > I think the safe way is:
> >
> > rcu_read_lock();
> > cgrp = cgroup_get_next()
> > if (!inc_not_zero(cgrp) {
> > rcu_read_unlock();
> > return NULL;
> > }
> > rcu_read_unlock();
> > return cgrp;
> >
> > But it's also safe to use cgrp = list_entry(&parent->children.next) for the above
> > scenario, seems you don't have to invent this cgroup_get_next().
> >
> But list-walk can't provide us view of hierarchy. Up-Down list walk is better ?
> please see memcg's code. it met some troubles.
> I'll make kfree(cgrp) to be called by RCU.
>

Ah please, I have a question.
Following is right ?
- until mount, cgroup's subsystem root is tied to dummy? root cgroup.
- cgroup cannot be unmounted while there are any children.
- cgroup_root is freed/allocated at umount/mount, then I have to handle
this event in cgroup-id.
(maybe current code has leak? in umount.)

Thanks,
-Kame

--
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/