On Thu, Aug 01 2013, Sha Zhengju wrote: > From: Sha Zhengju <handai.szj@xxxxxxxxxx> > > We should call mem_cgroup_begin_update_page_stat() before > mem_cgroup_update_page_stat() to get proper locks, however the > latter doesn't do any checking that we use proper locking, which > would be hard. Suggested by Michal Hock we could at least test for ^^ Hocko > rcu_read_lock_held() because RCU is held if !mem_cgroup_disabled(). > > Signed-off-by: Sha Zhengju <handai.szj@xxxxxxxxxx> Reviewed-by: Greg Thelen <gthelen@xxxxxxxxxx> > --- > mm/memcontrol.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index 7691cef..4a55d46 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -2301,6 +2301,7 @@ void mem_cgroup_update_page_stat(struct page *page, > if (mem_cgroup_disabled()) > return; > > + VM_BUG_ON(!rcu_read_lock_held()); > memcg = pc->mem_cgroup; > if (unlikely(!memcg || !PageCgroupUsed(pc))) > return; -- To unsubscribe from this list: send the line "unsubscribe cgroups" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html