From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from kanga.kvack.org (kanga.kvack.org [205.233.56.17]) by smtp.lore.kernel.org (Postfix) with ESMTP id B852DE77188 for ; Tue, 14 Jan 2025 18:45:30 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 3A84A6B009D; Tue, 14 Jan 2025 13:45:30 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 358636B009E; Tue, 14 Jan 2025 13:45:30 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1D03E6B009F; Tue, 14 Jan 2025 13:45:30 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0013.hostedemail.com [216.40.44.13]) by kanga.kvack.org (Postfix) with ESMTP id F06FB6B009D for ; Tue, 14 Jan 2025 13:45:29 -0500 (EST) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay06.hostedemail.com (Postfix) with ESMTP id 731E5AD998 for ; Tue, 14 Jan 2025 18:45:29 +0000 (UTC) X-FDA: 83006935578.25.F411A4D Received: from out-187.mta1.migadu.com (out-187.mta1.migadu.com [95.215.58.187]) by imf22.hostedemail.com (Postfix) with ESMTP id 90241C001B for ; Tue, 14 Jan 2025 18:45:27 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=MfPKZ9VU; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf22.hostedemail.com: domain of roman.gushchin@linux.dev designates 95.215.58.187 as permitted sender) smtp.mailfrom=roman.gushchin@linux.dev ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1736880327; a=rsa-sha256; cv=none; b=zrjw+yczXRr0yNt+IaqRHlosKRchQHTo3uiZ5/P8ipiCzoQ29+5ZY+rgCF8OrtwE1uBQMd pSxz27v2rtqjuj/mxP0zU/NcJM9R8jfEa0eFrRel4GuKqXJvuaHF9ck75FGoegMwCzMgGq 5M13iUYKxs3jpU5L26vkAQJZmT5+05I= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=MfPKZ9VU; dmarc=pass (policy=none) header.from=linux.dev; spf=pass (imf22.hostedemail.com: domain of roman.gushchin@linux.dev designates 95.215.58.187 as permitted sender) smtp.mailfrom=roman.gushchin@linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1736880327; h=from:from:sender:reply-to:subject:subject:date:date: message-id:message-id:to:to:cc:cc:mime-version:mime-version: content-type:content-type:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=FNSFiyYPAa6A/FMcmK9OpHCn7WP9eS7Gp3baqfoLLKE=; b=y97Yl8B2xFb2i8RCfEz1ewdtoDqSsC0Ye/5TfqeRvl8/VCbUN+GHkxgDO2BANv7IWMChTZ DYKfoBbTNVGnKyGPV87xpw6kJkm8+WEZNkP8F8pYbHk5FOXckD1UFbo6/ZRESn+L6Loyfs Qpe5GvsWrmST9m+Lw1g+oXfNPlJuop8= Date: Tue, 14 Jan 2025 18:45:20 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1736880325; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:cc:mime-version:mime-version:content-type:content-type: in-reply-to:in-reply-to:references:references; bh=FNSFiyYPAa6A/FMcmK9OpHCn7WP9eS7Gp3baqfoLLKE=; b=MfPKZ9VUnFamTOvff07luOem2NlkuLolL+dAWjPzQXqeNWp6gfTnIDn2lGaQ24vcbRPjAw vYPVMfiuM2GkYxLd4JCF+sRMgazylbKGNC3+svPb7n3EgMaI0EYZRUNVmcGdV8pGNrl9Kc Csjz6IxCTe/UpUsicdoD9r2XtJy34DM= X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. From: Roman Gushchin To: Chen Ridong Cc: akpm@linux-foundation.org, mhocko@kernel.org, hannes@cmpxchg.org, yosryahmed@google.com, shakeel.butt@linux.dev, muchun.song@linux.dev, davidf@vimeo.com, vbabka@suse.cz, mkoutny@suse.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, cgroups@vger.kernel.org, chenridong@huawei.com, wangweiyang2@huawei.com Subject: Re: [PATCH -v2 next 4/4] memcg: factor out stat(event)/stat_local(event_local) reading functions Message-ID: References: <20250114122519.1404275-1-chenridong@huaweicloud.com> <20250114122519.1404275-5-chenridong@huaweicloud.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20250114122519.1404275-5-chenridong@huaweicloud.com> X-Migadu-Flow: FLOW_OUT X-Rspamd-Server: rspam04 X-Rspamd-Queue-Id: 90241C001B X-Stat-Signature: jgqa8kk5ku1tizcjz7nfw9jyo1t83z9y X-Rspam-User: X-HE-Tag: 1736880327-561085 X-HE-Meta: U2FsdGVkX18r1oyxs6VWpUw4B6SNRMtutBM7t5yFZyD0w6irwNNFg+SAKv8NyD7k+S6a4QTJbs6OBzsmxP4NSyq51XdMePeNVQYMIpgJNNL1l6ojuejXD5rL/DS3mOaFeXU+iIuXuUmQeVck3YUdD4HWCRIazGVjtxF1d5Xj5uXzFXcB6/tNgiE+oxgY5TIoBiRRxBDA55e9ZGXdiYWdnGE3mqsHjCf2BO8vbZwdBvqrHQqLq4DHfM6R70mjhLy85Ut7xi4Rqp8rJezHqH3seU03fQqll2EPpDrXz20B1bqA1eHrnlg0fOt3PCX99FRJ8Cww1n8zkP/ryDVxAwAAUNLYix3x04zI/DjWgIjcDSuk6MnvK71mCYacfcBFPRCeHzhquAgWIYou1Lm3+0zPX58U7Cirx2gvF2H1GmGpe0rGH/QG8en0by7kpkQqLQAcLmRCdwvcZHhCYllFBkZxBs1FPAx6/1I8W8kh6w8MrgOhuXTxTYtFlEn6/gnTNceR2Piv32w648i3YUJOBtIu5kp9m/SGheurq4f8pv7AJ7KFywZhJK+KMYKYdT+Ki3ABxV6lxMKF3YeZ7nikSc50dlRNSvCUmgy6MNaZ2FgrJ01sJwzRspdnxM76Zohx19lj6MdFg+AijYKEkk8O3dGGtVIB8w2b98T11AkNDdyXXcqKwmYNwkdnlIm8Vk0OpwJzzDqo+oJWpfgw7vcaJ7TdGCNjg7eOgZfZu9mYkDWnrsHMdeP7vsmLWD9uQKhTzXgncrEC475rENdvA/A2U8xWyYugSK+2nVdxrXqXamIe2+vHObCNbiechB4C330f16uOuUU86ScHK8B5KRSt/jfSwGkgp5oERuiUn+pwuB2kdHla1jDWnl1TRc9hKjpUhRwCZA4VsxsJr3HLZ28qyB5Hq04YLY4Gj1Y+jnPu7pT7Ve3Xp+ANeLX1g+CdiTcwHiZ3GTo1UzSylA3jnmEI67e +wUKCtYC dSDp9v0AqQrkC6URy/qBAqqO1LJg30t+NuEX0MgRgBMLy92BhX/4kvO9c0M4I+I1n6FsHwr+AFYOqyE9jhdvC5A6VsnNfx4ltZy5755JDRAwoYahgEucSMXluUgDmVeHa5cVpMUV0ObW7tAeoGbY+wwtYRdLWOP4evQ1SEM/tQrf1fMcNY2MVtLMwBxMVJDrXcKhcqq608D5ynGKX/gP+Ehh5yh2KX3C4BllDwMhevgbV2eFi4UuKpi7v5a091O+pDDOg X-Bogosity: Ham, tests=bogofilter, spamicity=0.000000, version=1.2.4 Sender: owner-linux-mm@kvack.org Precedence: bulk X-Loop: owner-majordomo@kvack.org List-ID: List-Subscribe: List-Unsubscribe: On Tue, Jan 14, 2025 at 12:25:19PM +0000, Chen Ridong wrote: > From: Chen Ridong > > The only difference between 'lruvec_page_state' and > 'lruvec_page_state_local' is that they read 'state' and 'state_local', > respectively. Factor out an inner functions to make the code more concise. > Do the same for reading 'memcg_page_stat' and 'memcg_events'. > > Signed-off-by: Chen Ridong > --- > mm/memcontrol.c | 72 +++++++++++++++++++++---------------------------- > 1 file changed, 30 insertions(+), 42 deletions(-) > > diff --git a/mm/memcontrol.c b/mm/memcontrol.c > index b10e0a8f3375..14541610cad0 100644 > --- a/mm/memcontrol.c > +++ b/mm/memcontrol.c > @@ -375,7 +375,8 @@ struct lruvec_stats { > long state_pending[NR_MEMCG_NODE_STAT_ITEMS]; > }; > > -unsigned long lruvec_page_state(struct lruvec *lruvec, enum node_stat_item idx) > +static unsigned long __lruvec_page_state(struct lruvec *lruvec, > + enum node_stat_item idx, bool local) > { > struct mem_cgroup_per_node *pn; > long x; > @@ -389,7 +390,8 @@ unsigned long lruvec_page_state(struct lruvec *lruvec, enum node_stat_item idx) > return 0; > > pn = container_of(lruvec, struct mem_cgroup_per_node, lruvec); > - x = READ_ONCE(pn->lruvec_stats->state[i]); > + x = local ? READ_ONCE(pn->lruvec_stats->state_local[i]) : > + READ_ONCE(pn->lruvec_stats->state[i]); > #ifdef CONFIG_SMP > if (x < 0) > x = 0; > @@ -397,27 +399,16 @@ unsigned long lruvec_page_state(struct lruvec *lruvec, enum node_stat_item idx) > return x; > } > > + > +unsigned long lruvec_page_state(struct lruvec *lruvec, enum node_stat_item idx) > +{ > + return __lruvec_page_state(lruvec, idx, false); > +} I'd move these wrapper function definitions to memcontrol.h and make them static inline. Other than that, lgtm. Thank you!