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, send a message with 'unsubscribe linux-mm' in the body to majordomo@xxxxxxxxx. For more info on Linux MM, see: http://www.linux-mm.org/ . Don't email: <a href=mailto:"dont@xxxxxxxxx"> email@xxxxxxxxx </a>