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 1659AC02181 for ; Fri, 24 Jan 2025 07:42:52 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 4DFFB280043; Fri, 24 Jan 2025 02:42:52 -0500 (EST) Received: by kanga.kvack.org (Postfix, from userid 40) id 49037280040; Fri, 24 Jan 2025 02:42:52 -0500 (EST) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 357CD280043; Fri, 24 Jan 2025 02:42:52 -0500 (EST) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0014.hostedemail.com [216.40.44.14]) by kanga.kvack.org (Postfix) with ESMTP id 17A10280040 for ; Fri, 24 Jan 2025 02:42:52 -0500 (EST) Received: from smtpin29.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay03.hostedemail.com (Postfix) with ESMTP id 8D63BA0E2B for ; Fri, 24 Jan 2025 07:42:51 +0000 (UTC) X-FDA: 83041553742.29.A9D26BC Received: from dggsgout11.his.huawei.com (dggsgout11.his.huawei.com [45.249.212.51]) by imf14.hostedemail.com (Postfix) with ESMTP id 7EBE1100003 for ; Fri, 24 Jan 2025 07:42:47 +0000 (UTC) Authentication-Results: imf14.hostedemail.com; dkim=none; spf=pass (imf14.hostedemail.com: domain of chenridong@huaweicloud.com designates 45.249.212.51 as permitted sender) smtp.mailfrom=chenridong@huaweicloud.com; dmarc=none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1737704569; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references; bh=jo85/uZwb/u0yoTXNV9TOnFV7ae2wJPLmJKor2Tolnk=; b=rsV2U37s0nlh62oP1LW48CpK8C6m7tzUHMziVS1QGBRWpHYCPFIBh0GKF8zLgys0PRCT/c ZHynuWeYDapnoskM+zX6UcJJtxLCJILIvgtlxVr8JnP0ptbXdPPzXS1j13/2r7CBJ5sz/T Qu31N3OiLGjTL/kMxDzNDl7kgoUM6K8= ARC-Authentication-Results: i=1; imf14.hostedemail.com; dkim=none; spf=pass (imf14.hostedemail.com: domain of chenridong@huaweicloud.com designates 45.249.212.51 as permitted sender) smtp.mailfrom=chenridong@huaweicloud.com; dmarc=none ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1737704569; a=rsa-sha256; cv=none; b=FBxRFOz1a7jp6JZZYXnAEO4lMwh+3h0awypN1wcMS5MDKflbKhipWH/Q34xNL4+ys+8Acy PkfbrwutxPSgHh1O1DdGoH0OO42gnImdPYV6h/Qo8HdKfGR4JtYR4N7geaHUZhwFGNaQYP RWLtix1zxwCAJ7pwbIQbPXRND+RVWLs= Received: from mail.maildlp.com (unknown [172.19.163.235]) by dggsgout11.his.huawei.com (SkyGuard) with ESMTP id 4YfVBL3l6zz4f3jMF for ; Fri, 24 Jan 2025 15:41:46 +0800 (CST) Received: from mail02.huawei.com (unknown [10.116.40.252]) by mail.maildlp.com (Postfix) with ESMTP id 7AAC71A0A31 for ; Fri, 24 Jan 2025 15:42:08 +0800 (CST) Received: from [10.67.109.79] (unknown [10.67.109.79]) by APP3 (Coremail) with SMTP id _Ch0CgC3V8JPRJNnZMJABw--.54478S2; Fri, 24 Jan 2025 15:42:08 +0800 (CST) Message-ID: <50927192-67ac-4fb5-b41f-d11cdcd4e0e3@huaweicloud.com> Date: Fri, 24 Jan 2025 15:42:07 +0800 MIME-Version: 1.0 User-Agent: Mozilla Thunderbird Subject: Re: [PATCH v3 next 4/5] memcg: factor out stat(event)/stat_local(event_local) reading functions To: Johannes Weiner Cc: Yosry Ahmed , akpm@linux-foundation.org, mhocko@kernel.org, roman.gushchin@linux.dev, 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 References: <20250117014645.1673127-1-chenridong@huaweicloud.com> <20250117014645.1673127-5-chenridong@huaweicloud.com> <20250117165615.GF182896@cmpxchg.org> <20250117180238.GI182896@cmpxchg.org> <6daaf853-1283-42e6-bb0f-55d951edc925@huaweicloud.com> <20250124042302.GA5581@cmpxchg.org> Content-Language: en-US From: Chen Ridong In-Reply-To: <20250124042302.GA5581@cmpxchg.org> Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-CM-TRANSID:_Ch0CgC3V8JPRJNnZMJABw--.54478S2 X-Coremail-Antispam: 1UD129KBjvJXoW7Zw1kGFy3Cw13Kw43WF4kZwb_yoW8Kr1kpr W2yFyjkayDGrWrAF12ya15Ww1S9r93JrW5X34qvryIqr9Fqwn7try2kr45uFy5Jr4xXr1Y yr4Yqry2vF45AaUanT9S1TB71UUUUU7qnTZGkaVYY2UrUUUUjbIjqfuFe4nvWSU5nxnvy2 9KBjDU0xBIdaVrnRJUUUv0b4IE77IF4wAFF20E14v26r4j6ryUM7CY07I20VC2zVCF04k2 6cxKx2IYs7xG6rWj6s0DM7CIcVAFz4kK6r1j6r18M28lY4IEw2IIxxk0rwA2F7IY1VAKz4 vEj48ve4kI8wA2z4x0Y4vE2Ix0cI8IcVAFwI0_Ar0_tr1l84ACjcxK6xIIjxv20xvEc7Cj xVAFwI0_Gr1j6F4UJwA2z4x0Y4vEx4A2jsIE14v26rxl6s0DM28EF7xvwVC2z280aVCY1x 0267AKxVW0oVCq3wAS0I0E0xvYzxvE52x082IY62kv0487Mc02F40EFcxC0VAKzVAqx4xG 6I80ewAv7VC0I7IYx2IY67AKxVWUJVWUGwAv7VC2z280aVAFwI0_Jr0_Gr1lOx8S6xCaFV Cjc4AY6r1j6r4UM4x0Y48IcVAKI48JM4IIrI8v6xkF7I0E8cxan2IY04v7MxkF7I0En4kS 14v26r1q6r43MxAIw28IcxkI7VAKI48JMxC20s026xCaFVCjc4AY6r1j6r4UMI8I3I0E5I 8CrVAFwI0_Jr0_Jr4lx2IqxVCjr7xvwVAFwI0_JrI_JrWlx4CE17CEb7AF67AKxVWUtVW8 ZwCIc40Y0x0EwIxGrwCI42IY6xIIjxv20xvE14v26r1j6r1xMIIF0xvE2Ix0cI8IcVCY1x 0267AKxVW8JVWxJwCI42IY6xAIw20EY4v20xvaj40_Jr0_JF4lIxAIcVC2z280aVAFwI0_ Jr0_Gr1lIxAIcVC2z280aVCY1x0267AKxVW8JVW8JrUvcSsGvfC2KfnxnUUI43ZEXa7IU1 7KsUUUUUU== X-CM-SenderInfo: hfkh02xlgr0w46kxt4xhlfz01xgou0bp/ X-Rspamd-Server: rspam02 X-Rspamd-Queue-Id: 7EBE1100003 X-Stat-Signature: cyqsd89re7rwuisijmguuspnscm6kf4n X-Rspam-User: X-HE-Tag: 1737704567-788505 X-HE-Meta: U2FsdGVkX1+XP22O+2vBhf7U1CguQ5GUm8laOYBwNoN84Yn0SsZgqORDOfLsteTv5EzB8zxbRSZNI8u8ymHmAcWJE4FboEDxS4dBffsN+rtJDPLE+jb8rp6uDfINSomdZ8G2DrbD7/dmCnatx9GN7/qJqND4SqcUunyIdSOThRcxGZR6+8k9hIZ6O0Lu2FnT8STyORBPRJqdygd7vHCKWfXSsJbpRHwr+1AKrcjcbAm+E3RTPEzINKvVTSBnYjT8JENelm0LwTssVVbmbVrNT0UQa+O8zNKHlQtJqGxsyHaSn4LhTny6/CpsSuH9yezsd+GvH5L6mcvmp8mMAFmpGyFFBVW+j6f7UlovyEoSk6N3jDhmtDRjysZXJskEji7t+WUg+AkauUq/ZT+rX8J6OZNMiUztVYwNNNCYB+Rq/BlHv/BxakubJnJqpVsWSUt6Qy9wbCGm/ptd1oIAbm8t2zzhKzEZONeXpbuJzw48RgT9BGLgMFrKAf3472Q2ga5UCAPTpWONqTZTG7fIibZIZiO0hdU9IkomtXdJoZeRR0N9g0+KWnQAOS/fSAZdwgjCLi5/EcgI2Tdo0lvHhTzXsWLLsK6iPXMnEF6xketnvLJndlKLE9hTcFfW7D2f5Xlnge8unOFXtY9eR3vnODrgHhWVuev4dnTdhP/+NtERtKK7lwJZhyJjss+oEQhEl4Qwv/Sr3o2xv+3lNFMYIfr8TjGu0Zx8luAvUCi0xeMQqxwGcb9TAm6kp+4aDW51pEMAtL6MkptaOM0lrznvmrii5PCrL6zUK/uArw3SYugq3P9QVqIU3EEjUZNJjyMlQ2ktNnZ6Y9ot7JT2lTU4BufC7DC6QEGxT7ZeY5TrKclgx7FImGl5M2WApWNHJRbQ2j3au5biguU2lxyH46I+UPyPR7pz1zzIJiWLPB2VFlMg5VgOgIK+tgEW3CO5fGUZEGFGvfz4K+5TICdN3V5th/T gPv7RIyz pn6R5q4Fw+hQhlRRhQcPAPFGuTtY3FEgxm5X/deaH2iolDjF5ttXAo6tcx4UWXYQZw719T/lXqjFKHNh4ctmabyYrqbwmxWiQjl535KMvel3JQyagngK50cAzp3k1uHqzhgxGzWDl8axA+Y1XfFw5dJIoxQMrOANVJRX6nRHYxZttIEYTVkLOd4RZDtLrs8jdV/QHGmGkngIJAGKkhvDYuX4EvBRXtzNerUR/pJYJbXabCaLPQwwn34cJgKiwieJRvC6rywjFrtoRaoOMea+00VaZUVnD0HIhAt64p3voU6i0GyxEXPVACakY6EO4CrXS8uBb 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 2025/1/24 12:23, Johannes Weiner wrote: > On Tue, Jan 21, 2025 at 10:15:00PM +0800, Chen Ridong wrote: >> >> >> On 2025/1/18 2:02, Johannes Weiner wrote: >>> On Fri, Jan 17, 2025 at 09:01:59AM -0800, Yosry Ahmed wrote: >>>> On Fri, Jan 17, 2025 at 8:56 AM Johannes Weiner wrote: >>>>> >>>>> On Fri, Jan 17, 2025 at 01:46:44AM +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 >>>>> >>>>> bool parameters make for poor readability at the callsites :( >>>>> >>>>> With the next patch moving most of the duplication to memcontrol-v1.c, >>>>> I think it's probably not worth refactoring this. >>>> >>>> Arguably the duplication would now be across two different files, >>>> making it more difficult to notice and keep the implementations in >>>> sync. >>> >>> Dependencies between the files is a bigger pain. E.g. try_charge() >>> being defined in memcontrol-v1.h makes memcontrol.c more difficult to >>> work with. That shared state also immediately bitrotted when charge >>> moving was removed and the last cgroup1 caller disappeared. >>> >>> The whole point of the cgroup1 split was to simplify cgroup2 code. The >>> tiny amount of duplication in this case doesn't warrant further >>> entanglement between the codebases. >> >> Thank you for your review. >> >> I agree with that. However, If I just move the 'local' functions to >> memcontrol-v1.c, I have to move some dependent declarations to the >> memcontrol-v1.h. >> E.g. struct memcg_vmstats, MEMCG_VMSTAT_SIZE and so on. >> >> Is this worth doing? > > Ah, right. No, that's not worth it. > > The easiest way is to slap CONFIG_MEMCG_V1 guards around the local > functions but leave them in memcontrol.c for now. We already have a > few of those ifdefs for where splitting/sharing wasn't practical. At > least then it's clearly marked and they won't get built. Thank you, will do that. Best regards, Ridong