From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752829AbcGGToT (ORCPT ); Thu, 7 Jul 2016 15:44:19 -0400 Received: from gum.cmpxchg.org ([85.214.110.215]:50790 "EHLO gum.cmpxchg.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751193AbcGGToK (ORCPT ); Thu, 7 Jul 2016 15:44:10 -0400 Date: Thu, 7 Jul 2016 15:40:24 -0400 From: Johannes Weiner To: Michal Hocko Cc: Andrew Morton , Ye Xiaolong , Vladimir Davydov , linux-mm@kvack.org, cgroups@vger.kernel.org, linux-kernel@vger.kernel.org, kernel-team@fb.com Subject: Re: [PATCH rebase] mm: fix vm-scalability regression in cgroup-aware workingset code Message-ID: <20160707194024.GA26580@cmpxchg.org> References: <20160622182019.24064-1-hannes@cmpxchg.org> <20160624175101.GA3024@cmpxchg.org> <20160627130527.GK31799@dhcp22.suse.cz> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20160627130527.GK31799@dhcp22.suse.cz> User-Agent: Mutt/1.6.2 (2016-07-01) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Michal, [sorry for the delay, I was traveling with no connectivity] On Mon, Jun 27, 2016 at 03:05:28PM +0200, Michal Hocko wrote: > On Fri 24-06-16 13:51:01, Johannes Weiner wrote: > > Acked-by: Michal Hocko Thanks! > Minor note below > > > +static inline struct mem_cgroup *page_memcg_rcu(struct page *page) > > +{ > > I guess rcu_read_lock_held() here would be appropriate > > > + return READ_ONCE(page->mem_cgroup); Agreed. Andrew, could you please fold this? >>From ed49e364e47c933d84533a0d8bd355831b5ca9f1 Mon Sep 17 00:00:00 2001 From: Johannes Weiner Date: Thu, 7 Jul 2016 15:38:26 -0400 Subject: [PATCH] mm: fix vm-scalability regression in cgroup-aware workingset code fix Signed-off-by: Johannes Weiner --- include/linux/mm.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/include/linux/mm.h b/include/linux/mm.h index b21e5f30378e..97065e1f0237 100644 --- a/include/linux/mm.h +++ b/include/linux/mm.h @@ -975,6 +975,7 @@ static inline struct mem_cgroup *page_memcg(struct page *page) } static inline struct mem_cgroup *page_memcg_rcu(struct page *page) { + WARN_ON_ONCE(!rcu_read_lock_held()); return READ_ONCE(page->mem_cgroup); } #else @@ -984,6 +985,7 @@ static inline struct mem_cgroup *page_memcg(struct page *page) } static inline struct mem_cgroup *page_memcg_rcu(struct page *page) { + WARN_ON_ONCE(!rcu_read_lock_held()); return NULL; } #endif -- 2.9.0