cgroup: drop unnecessary RCU dancing from __put_css_set()
authorTejun Heo <tj@kernel.org>
Thu, 13 Jun 2013 04:04:54 +0000 (21:04 -0700)
committerTejun Heo <tj@kernel.org>
Thu, 13 Jun 2013 17:55:18 +0000 (10:55 -0700)
commitddd69148bdc45e5e3e55bfde3571daecd5a96d75
tree0d248de63b78acf91668a96a1f6cc77f49f2946c
parent54766d4a1d3d6f84ff8fa475cd8f165c0a0000eb
cgroup: drop unnecessary RCU dancing from __put_css_set()

__put_css_set() does RCU read access on @cgrp across dropping
@cgrp->count so that it can continue accessing @cgrp even if the count
reached zero and destruction of the cgroup commenced.  Given that both
sides - __css_put() and cgroup_destroy_locked() - are cold paths, this
is unnecessary.  Just making cgroup_destroy_locked() grab css_set_lock
while checking @cgrp->count is enough.

Remove the RCU read locking from __put_css_set() and make
cgroup_destroy_locked() read-lock css_set_lock when checking
@cgrp->count.  This will also allow removing @cgrp->count.

Signed-off-by: Tejun Heo <tj@kernel.org>
Acked-by: Li Zefan <lizefan@huawei.com>
kernel/cgroup.c