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 C41B9C35FFA for ; Wed, 19 Mar 2025 22:30:31 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 513F728000A; Wed, 19 Mar 2025 18:30:30 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 4C297280005; Wed, 19 Mar 2025 18:30:30 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 3D91F28000A; Wed, 19 Mar 2025 18:30:30 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0015.hostedemail.com [216.40.44.15]) by kanga.kvack.org (Postfix) with ESMTP id 1E6B8280005 for ; Wed, 19 Mar 2025 18:30:30 -0400 (EDT) Received: from smtpin08.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id BB118C079F for ; Wed, 19 Mar 2025 22:30:30 +0000 (UTC) X-FDA: 83239745820.08.E317C93 Received: from out-170.mta0.migadu.com (out-170.mta0.migadu.com [91.218.175.170]) by imf15.hostedemail.com (Postfix) with ESMTP id EC6E4A001F for ; Wed, 19 Mar 2025 22:30:28 +0000 (UTC) Authentication-Results: imf15.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=uz26driL; spf=pass (imf15.hostedemail.com: domain of roman.gushchin@linux.dev designates 91.218.175.170 as permitted sender) smtp.mailfrom=roman.gushchin@linux.dev; dmarc=pass (policy=none) header.from=linux.dev ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1742423429; 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=Wd2WLgcVNLSLKrrtZe9Gb+auVQLYKtFm8mpaYa55yUc=; b=FhZAbXcdX04Uo6VRFjMUx2ExqmHMBbvuwVmMA6yvArqYBiqiMrslljtomc1m6eu0ayC+g1 8uWKqNmexNbtXw83/OR/Oka7ZsURFnCqyNRy849ihfgLpEtklaIacaZXrK0d6hfkSt1ZPS bpWjWj8xfCLBrH6E3JrGPvtuFi1n1ug= ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1742423429; a=rsa-sha256; cv=none; b=w6sRYF1r6rZBEansmMnXs6wXNevMQhFEdD43z0w6nMQ19ryJuozBBJ8SXwPtSdQH7gZgvM gzO4rDVZjgThYm/ngE5Jikz0lwd+rvE93CkYlaarV0weyLo2fENbXhADfXdEQytn+PrfWf 1xdaQ4Aah2qYim9TJgZv8MomSa8ef9o= ARC-Authentication-Results: i=1; imf15.hostedemail.com; dkim=pass header.d=linux.dev header.s=key1 header.b=uz26driL; spf=pass (imf15.hostedemail.com: domain of roman.gushchin@linux.dev designates 91.218.175.170 as permitted sender) smtp.mailfrom=roman.gushchin@linux.dev; dmarc=pass (policy=none) header.from=linux.dev X-Report-Abuse: Please report any abuse attempt to abuse@migadu.com and include these headers. DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linux.dev; s=key1; t=1742423426; 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=Wd2WLgcVNLSLKrrtZe9Gb+auVQLYKtFm8mpaYa55yUc=; b=uz26driLeSZMatO2fSgTb797TKT5X5Zr1pAgC31DrX0BalzYpoNqjFTlQOTuwpQjor6DZU 5TASewyKPmHxyscxdtamHEztWY3TLJIDHSiRdYSqI4yjBQz8tMO7lW8SpDVX2O4yZ2qZ2a E0iyZH2NBJsO6B7S5uZQYXbyvyvuz0M= From: Roman Gushchin To: Shakeel Butt Cc: Jingxiang Zeng , akpm@linux-foundation.org, linux-mm@kvack.org, cgroups@vger.kernel.org, linux-kernel@vger.kernel.org, hannes@cmpxchg.org, mhocko@kernel.org, muchun.song@linux.dev, kasong@tencent.com Subject: Re: [RFC 2/5] memcontrol: add boot option to enable memsw account on dfl In-Reply-To: (Shakeel Butt's message of "Wed, 19 Mar 2025 12:34:00 -0700") References: <20250319064148.774406-1-jingxiangzeng.cas@gmail.com> <20250319064148.774406-3-jingxiangzeng.cas@gmail.com> Date: Wed, 19 Mar 2025 22:30:20 +0000 Message-ID: <7ia4tt7ovekj.fsf@castle.c.googlers.com> MIME-Version: 1.0 Content-Type: text/plain X-Migadu-Flow: FLOW_OUT X-Rspam-User: X-Rspamd-Server: rspam01 X-Rspamd-Queue-Id: EC6E4A001F X-Stat-Signature: jmdhqwccref6y9zcwemcx36qdgxxr4kr X-HE-Tag: 1742423428-52821 X-HE-Meta: U2FsdGVkX1+/y7tjtMOgPBcu7EESYRhEOz2oiJKG/WEqXSJV0tkxETX3QxYHZGuYSsEIUeDq3EM5eByQk/SB9XNWk620lVTeEVB/Y2rpy+FVpt+A3GedFImpMGayuIUyflGYC/YvwgbRoOD5+HpWisCcFt5x6qS45NCtfzRWlYcvnBhK6rE2zdvoNQ21FF6zt821pjtluSlbZj2+K0OjzYPecNIEeLwDOylDINrrTHnoEe6AnHl3HADfNMNH+T7CSFz8xLbIvBMBZTxxCcl8Io78jWQO2shtFZWTmPCDP6j79Fu54aMDeAhYfPP2ZqQL0aohHlUqaXDsXA39WsWIOn9VPLeShFe4D7flvySKztGbDFteXpRANGVhlq6RUnbxuTS6Bj73z1dWonnn9XVPj5ozJjIGs3l2K7tO0DeGy1w3sBMHzSPnb0VuJtnertBkgXLTRDoc7Z89lKUtAlMFNnL5pdxkVN2YRS58F0mn0iO9dOZ8LjBrbkvUeYW/+b4F/8FOUmAtWSmRxRFqXoel77asuQtWpfXUcbvbJLQj3giOqyQZBeGkLQp/iiCo/Dj7dfF91BN7zF44pJtunzlm2Cz2HdD5FLaC8F6bZC77bXydQQpN7N/4+t3cmTKh7OB2ySfQBrkS/NCSyTkOI2iKqKSjdWH5q4gb3rbabLvm7Oqe8xFO/PieFHUf6JCuhwy8hSAhjQqc7imAip27coKOD3xWgqVx7D94I9z43RxWEyr6DzdqmDKTUvZQ0AkrrTHQfHr+IAH+1ZyhRTQVJbP/TLI5cTqeemoRi2qEX2FI2CtU9osmYgiAUq0VV99Hb0eIy68o8Niig6QESaGHx96Ez/yUPUKE2LY7Bbw3k0Fc2EiBsQpVq7cq/LuEFTaNzV0BS69SWIBG3TsoIb9JKctG1kvN32wWPAfOa9G11H4/Xqad6+ikhYDWSP1Oz+7H2D776s2iopR1U/EdfY0iKIm O1ejWKW8 Ck7BQg4zcuuGLDhmsJ3KEe5avdKB1AjyHXiCvw6l2nERZNRzf+zuF5ogsrQATfFoYgi0hD1nKrkOwt9mdhAAgGEuNWPihHlsUB/VTANQl5qTixsVligMW+2b54w== 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: Shakeel Butt writes: > On Wed, Mar 19, 2025 at 02:41:45PM +0800, Jingxiang Zeng wrote: >> From: Zeng Jingxiang >> >> Added cgroup.memsw_account_on_dfl startup parameter, which >> is off by default. When enabled in cgroupv2 mode, the memory >> accounting mode of swap will be reverted to cgroupv1 mode. >> >> Signed-off-by: Zeng Jingxiang >> --- >> include/linux/memcontrol.h | 4 +++- >> mm/memcontrol.c | 11 +++++++++++ >> 2 files changed, 14 insertions(+), 1 deletion(-) >> >> diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h >> index dcb087ee6e8d..96f2fad1c351 100644 >> --- a/include/linux/memcontrol.h >> +++ b/include/linux/memcontrol.h >> @@ -62,10 +62,12 @@ struct mem_cgroup_reclaim_cookie { >> >> #ifdef CONFIG_MEMCG >> >> +DECLARE_STATIC_KEY_FALSE(memsw_account_on_dfl); >> /* Whether enable memory+swap account in cgroupv2 */ >> static inline bool do_memsw_account_on_dfl(void) >> { >> - return IS_ENABLED(CONFIG_MEMSW_ACCOUNT_ON_DFL); >> + return IS_ENABLED(CONFIG_MEMSW_ACCOUNT_ON_DFL) >> + || static_branch_unlikely(&memsw_account_on_dfl); > > Why || in above condition? Shouldn't it be && ? > >> } >> >> #define MEM_CGROUP_ID_SHIFT 16 >> diff --git a/mm/memcontrol.c b/mm/memcontrol.c >> index 768d6b15dbfa..c1171fb2bfd6 100644 >> --- a/mm/memcontrol.c >> +++ b/mm/memcontrol.c >> @@ -5478,3 +5478,14 @@ static int __init mem_cgroup_swap_init(void) >> subsys_initcall(mem_cgroup_swap_init); >> >> #endif /* CONFIG_SWAP */ >> + >> +DEFINE_STATIC_KEY_FALSE(memsw_account_on_dfl); >> +static int __init memsw_account_on_dfl_setup(char *s) >> +{ >> + if (!strcmp(s, "1")) >> + static_branch_enable(&memsw_account_on_dfl); >> + else if (!strcmp(s, "0")) >> + static_branch_disable(&memsw_account_on_dfl); >> + return 1; >> +} >> +__setup("cgroup.memsw_account_on_dfl=", memsw_account_on_dfl_setup); > > Please keep the above in memcontrol-v1.c Hm, I'm not sure about this. This feature might be actually useful with cgroup v2, as some companies are dependent on the old cgroup v1 semantics here but otherwise would prefer to move to v2. In other words, I see it as a cgroup v2 feature, not as a cgroup v1. So there is no reason to move it into the cgroup v1 code. I think it deserves a separate config option (if we're really concerned about the memory overhead in struct mem_cgroup) or IMO better a boot/mount time option. Thanks!