cgroup: remove cgroup_pidlist->rwsem
authorTejun Heo <tj@kernel.org>
Fri, 29 Nov 2013 15:42:59 +0000 (10:42 -0500)
committerTejun Heo <tj@kernel.org>
Fri, 29 Nov 2013 15:42:59 +0000 (10:42 -0500)
commit069df3b7aeb3f4e926c4da9630c92010909af512
tree75e84d904908603d009824bb8cb43315e2683b7f
parente6b817103d168a76e4044ebcdbc08225d77a81cb
cgroup: remove cgroup_pidlist->rwsem

cgroup_pidlist locking is needlessly complicated.  It has outer
cgroup->pidlist_mutex to protect the list of pidlists associated with
a cgroup and then each pidlist has rwsem to synchronize updates and
reads.  Given that the only read access is from seq_file operations
which are always invoked back-to-back, the rwsem is a giant overkill.
All it does is adding unnecessary complexity.

This patch removes cgroup_pidlist->rwsem and protects all accesses to
pidlists belonging to a cgroup with cgroup->pidlist_mutex.
pidlist->rwsem locking is removed if it's nested inside
cgroup->pidlist_mutex; otherwise, it's replaced with
cgroup->pidlist_mutex locking.

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