Messages in this thread | | | Date | Mon, 24 Nov 2008 12:41:09 -0800 | Subject | Re: [PATCH] cgroups: remove rcu_read_lock() in cgroupstats_build() | From | Paul Menage <> |
| |
On Fri, Nov 21, 2008 at 8:09 PM, Lai Jiangshan <laijs@cn.fujitsu.com> wrote: > > cgroup_iter_* do not need rcu_read_lock(). > > In cgroup_enable_task_cg_lists(), do_each_thread() and > while_each_thread() are protected by RCU, > it's OK, for write_lock(&css_set_lock) implies rcu_read_lock() in non-RT kernel. > > If we need explicit rcu_read_lock(), we should add rcu_read_lock() > in cgroup_enable_task_cg_lists(), not cgroup_iter_*. > > Signed-off-by: Lai Jiangshan <laijs@cn.fujitsu.com>
Acked-by: Paul Menage <menage@google.com>
Seems reasonable. Thanks,
Paul
> --- > diff --git a/kernel/cgroup.c b/kernel/cgroup.c > index 358e775..e6d92a5 100644 > --- a/kernel/cgroup.c > +++ b/kernel/cgroup.c > @@ -2047,7 +2047,6 @@ int cgroupstats_build(struct cgroupstats *stats, struct dentry *dentry) > > ret = 0; > cgrp = dentry->d_fsdata; > - rcu_read_lock(); > > cgroup_iter_start(cgrp, &it); > while ((tsk = cgroup_iter_next(cgrp, &it))) { > @@ -2072,7 +2071,6 @@ int cgroupstats_build(struct cgroupstats *stats, struct dentry *dentry) > } > cgroup_iter_end(cgrp, &it); > > - rcu_read_unlock(); > err: > return ret; > } > > >
| |