Thread (74 messages) 74 messages, 7 authors, 2012-11-12

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

From: Michal Hocko <hidden>
Date: 2012-11-07 15:38:38
Also in: linux-pm, lkml

On Tue 06-11-12 12:31:54, Tejun Heo wrote:
On Sat, Nov 03, 2012 at 01:38:29AM -0700, Tejun Heo wrote:
quoted
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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help