From: Roman Gushchin <roman.gushchin@linux.dev>
To: Shakeel Butt <shakeel.butt@linux.dev>
Cc: Jingxiang Zeng <linuszeng@tencent.com>,
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
Date: Wed, 19 Mar 2025 22:30:20 +0000 [thread overview]
Message-ID: <7ia4tt7ovekj.fsf@castle.c.googlers.com> (raw)
In-Reply-To: <m35wwnetfubjrgcikiia7aurhd4hkcguwqywjamxm4xnaximt7@cnscqcgwh4da> (Shakeel Butt's message of "Wed, 19 Mar 2025 12:34:00 -0700")
Shakeel Butt <shakeel.butt@linux.dev> writes:
> On Wed, Mar 19, 2025 at 02:41:45PM +0800, Jingxiang Zeng wrote:
>> From: Zeng Jingxiang <linuszeng@tencent.com>
>>
>> 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 <linuszeng@tencent.com>
>> ---
>> 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!
next prev parent reply other threads:[~2025-03-19 22:30 UTC|newest]
Thread overview: 28+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-03-19 6:41 [RFC 0/5] add option to restore swap account to cgroupv1 mode Jingxiang Zeng
2025-03-19 6:41 ` [RFC 1/5] Kconfig: add SWAP_CHARGE_V1_MODE config Jingxiang Zeng
2025-03-19 19:29 ` Shakeel Butt
2025-03-19 19:31 ` Shakeel Butt
2025-03-19 6:41 ` [RFC 2/5] memcontrol: add boot option to enable memsw account on dfl Jingxiang Zeng
2025-03-19 19:34 ` Shakeel Butt
2025-03-19 22:30 ` Roman Gushchin [this message]
2025-03-20 8:43 ` jingxiang zeng
2025-03-20 14:28 ` Johannes Weiner
2025-03-20 15:16 ` Roman Gushchin
2025-03-20 15:33 ` Shakeel Butt
2025-04-02 13:40 ` Michal Koutný
2025-04-03 7:47 ` [External] " Zhongkun He
2025-04-03 9:16 ` jingxiang zeng
2025-04-11 16:57 ` Michal Koutný
2025-04-16 8:29 ` jingxiang zeng
2025-05-05 18:29 ` Michal Koutný
2025-03-20 8:51 ` jingxiang zeng
2025-03-19 6:41 ` [RFC 3/5] mm/memcontrol: do not scan anon pages if memsw limit is hit Jingxiang Zeng
2025-03-19 19:36 ` Shakeel Butt
2025-03-20 8:40 ` jingxiang zeng
2025-03-19 6:41 ` [RFC 4/5] mm/memcontrol: allow memsw account in cgroup v2 Jingxiang Zeng
2025-03-19 6:41 ` [RFC 5/5] Docs/cgroup-v2: add cgroup.memsw_account_on_dfl Documentation Jingxiang Zeng
2025-03-19 19:27 ` [RFC 0/5] add option to restore swap account to cgroupv1 mode Shakeel Butt
2025-03-19 19:38 ` Johannes Weiner
2025-03-19 19:51 ` Shakeel Butt
2025-03-20 8:09 ` jingxiang zeng
2025-03-20 15:08 ` Johannes Weiner
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7ia4tt7ovekj.fsf@castle.c.googlers.com \
--to=roman.gushchin@linux.dev \
--cc=akpm@linux-foundation.org \
--cc=cgroups@vger.kernel.org \
--cc=hannes@cmpxchg.org \
--cc=kasong@tencent.com \
--cc=linuszeng@tencent.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=mhocko@kernel.org \
--cc=muchun.song@linux.dev \
--cc=shakeel.butt@linux.dev \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox