Re: [PATCH 3/9] cgroup: implement generic child / descendant walkmacros

From: Michal Hocko
Date: Wed Nov 07 2012 - 10:38:27 EST


On Tue 06-11-12 12:31:54, Tejun Heo wrote:
> On Sat, Nov 03, 2012 at 01:38:29AM -0700, Tejun Heo wrote:
> > Currently, cgroup doesn't provide any generic helper for walking a
> > given cgroup's children or descendants. This patch adds the following
> > three macros.
> >
> > * cgroup_for_each_child() - walk immediate children of a cgroup.
> >
> > * cgroup_for_each_descendant_pre() - visit all descendants of a cgroup
> > in pre-order tree traversal.
> >
> > * cgroup_for_each_descendant_post() - visit all descendants of a
> > cgroup in post-order tree traversal.
> >
> > All three only require the user to hold RCU read lock during
> > traversal. Verifying that each iterated cgroup is online is the
> > responsibility of the user. When used with proper synchronization,
> > cgroup_for_each_descendant_pre() can be used to propagate config
> > updates to descendants in reliable way. See comments for details.
>
> Michal, Li, how does this look to you? Would this be okay for memcg
> too?

Yes, definitely. We are currently iterating by css->id which is, ehm,
impractical. Having a deterministic tree walk is definitely a plus.

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