Hello, Balbir.
On Tue, Aug 09, 2016 at 05:02:47PM +1000, Balbir Singh wrote:
quoted
Hmm? Where does mem_cgroup_iter grab cgroup_mutex? cgroup_mutex nests
outside cgroup_threadgroup_rwsem or most other mutexes for that matter
and isn't exposed from cgroup core.
I based my theory on the code
mem_cgroup_iter -> css_next_descendant_pre which asserts
cgroup_assert_mutex_or_rcu_locked(),
although you are right, we hold RCU lock while calling css_* routines.
That's "or". The iterator can be called either with RCU lock or
cgroup_mutex. cgroup core may use it under cgroup_mutex. Everyone
else uses it with rcu.
Thanks.
--
tejun