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 0EE55C28B30 for ; Thu, 20 Mar 2025 08:43:25 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E2149280002; Thu, 20 Mar 2025 04:43:24 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DD239280001; Thu, 20 Mar 2025 04:43:24 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C9944280002; Thu, 20 Mar 2025 04:43:24 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0012.hostedemail.com [216.40.44.12]) by kanga.kvack.org (Postfix) with ESMTP id ACECF280001 for ; Thu, 20 Mar 2025 04:43:24 -0400 (EDT) Received: from smtpin01.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay10.hostedemail.com (Postfix) with ESMTP id B4F73C0FE4 for ; Thu, 20 Mar 2025 08:43:24 +0000 (UTC) X-FDA: 83241290328.01.2CD1527 Received: from mail-pj1-f41.google.com (mail-pj1-f41.google.com [209.85.216.41]) by imf20.hostedemail.com (Postfix) with ESMTP id 19F631C0002 for ; Thu, 20 Mar 2025 08:43:22 +0000 (UTC) Authentication-Results: imf20.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=dH6kdMWL; spf=pass (imf20.hostedemail.com: domain of jingxiangzeng.cas@gmail.com designates 209.85.216.41 as permitted sender) smtp.mailfrom=jingxiangzeng.cas@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1742460203; 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=RGOMxcHFVZ0m1mCzI9ZhAVlgLqcK8VzJh6hs5TAEKyQ=; b=InynrdnrFYJH+yAXdkEPv3vXUNV9L2oHHoheGZjIKLFAexrR/BaSm7B6LI7/iZ8at+ozYr zLY0D1CTFWQT33KEYxz5TFk9NbMfpS9xcQWhDVorYrZGRLBItMSlABltLGVYLKaObLA421 I98etzpmdO0c1NZh6UjTN/o8SVYrV00= ARC-Authentication-Results: i=1; imf20.hostedemail.com; dkim=pass header.d=gmail.com header.s=20230601 header.b=dH6kdMWL; spf=pass (imf20.hostedemail.com: domain of jingxiangzeng.cas@gmail.com designates 209.85.216.41 as permitted sender) smtp.mailfrom=jingxiangzeng.cas@gmail.com; dmarc=pass (policy=none) header.from=gmail.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1742460203; a=rsa-sha256; cv=none; b=Db4yUzXiZdo/GA0+Amg7y7FdfYzJkuYLlLXYeDIUFPF6r6GOiBO9Ttk31RV6WBgHz1n5SJ Lcl2MwY25v4TUAN30dDjx1CyohbIQopX/NF/Nni+gorI4elNMGE+3rulkgfFL+ryh4qtFu UvtxKyHt86OsFBoSGJjWc/M5Fb3+GPI= Received: by mail-pj1-f41.google.com with SMTP id 98e67ed59e1d1-3014cb646ecso620625a91.1 for ; Thu, 20 Mar 2025 01:43:22 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742460202; x=1743065002; darn=kvack.org; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:from:to:cc:subject:date:message-id:reply-to; bh=RGOMxcHFVZ0m1mCzI9ZhAVlgLqcK8VzJh6hs5TAEKyQ=; b=dH6kdMWL91ewvxRH8FzTC0INVNfJ4/zL9NH7/5DOf9ZUrplUGAH6QDzJ/xWrnWeVd8 iyBMrY7smcsPybH0EEVq7BjGPcCTtDvJn1CvZhUQJcFBrbNF8jRbcWmVJS4Ynt9U7DRS 8xTpsjDyN6MbBOfPZCjycQEcvwSQoCc9+KwQ+uUBmik52PJm3Y4ImdS+1eeHx9JQAqFQ B7OfYUmsjsq30tDJWCfEFgblL69QBfyz8IP6ir97d0eNjJN+1vAgCOvG4c0inUECRfXM QZf5BoQ1NK761np6LuIei+oFMDYzYAZzeR9/DX7gx5UWtpquLPa60wAaSTY+p91oeYGc XeEw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742460202; x=1743065002; h=cc:to:subject:message-id:date:from:in-reply-to:references :mime-version:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=RGOMxcHFVZ0m1mCzI9ZhAVlgLqcK8VzJh6hs5TAEKyQ=; b=aYLKtiNJJ6Aak8FdQtnh+J31xKDJVYbPTggAOZDSFWVhIMrvGAsmYTJ5NZV3n2B9hT LlQrm/5cnhmjdcIqm2YlUlYxHx/7RhV9jYXuukz8Qo5eJ3ySnFm7CRL5v6UpsHvE79QA Tjsws7F3ZsHamiKe938z3wgnWlWX63jaSEtQfD5bWKBrc970Z+u0eoR7CaWYHGSQKD8F hQxu8TlbCwbb8LJw6ya9uLaJQk+0S67ypIzu67VRwb65VRpocJN+jDbZRiiEt/bjlO6q CoT3mUHvm/BsG0wu7bkdaAtC+1k0Z+iEWxAY6tVHGjqPQ0NTwjyjuCQSLVYfakn3MI6l cD9w== X-Forwarded-Encrypted: i=1; AJvYcCXUNJnUIzdOsxLEuBy5CIoRDv845g8J2LiFx2568jDCTyaJhYM4zCe1BTBicj3KOVR4r9BNXBhibA==@kvack.org X-Gm-Message-State: AOJu0Yw0MdRommiPi+m4nSa0Xn5irVOpOTb4YarlluNJPfH9p1G8ledX Qtlrg3QPvDBkwnOeHJpfYJh0bKirsccXdZT+ZzjWue1u1np9gZpXmwWiEnTw9fil00Z8dMtw8ul K6nngALYhV/+Id0AGgl0RLLjbFAI= X-Gm-Gg: ASbGncvJun2yjMSeFTVsRxgWrjG6gk5DbC/Z7FeMictWWSAkIaZoB18WkWsPIQi7PBn /ObnCRKERLJMiO48LS8fS6XkTBnPMH2HGrLJ3yW8LL+CCi4uv4dNJAO+5tJyXQp6rGHzyYXTUeN wiqvH+b4AoHAUk6998vBudshxhhA== X-Google-Smtp-Source: AGHT+IEp2PMi9orU8cRBnyIS1/V13B3RTRbIyDXX3S5REe0hQwbDtQFE/YPAsGXwKKq6TxlnHrx9eR9ZKtnG837JNE8= X-Received: by 2002:a17:90b:4a82:b0:301:1d9f:4ba2 with SMTP id 98e67ed59e1d1-301be201e7emr7442082a91.28.1742460201953; Thu, 20 Mar 2025 01:43:21 -0700 (PDT) MIME-Version: 1.0 References: <20250319064148.774406-1-jingxiangzeng.cas@gmail.com> <20250319064148.774406-3-jingxiangzeng.cas@gmail.com> <7ia4tt7ovekj.fsf@castle.c.googlers.com> In-Reply-To: <7ia4tt7ovekj.fsf@castle.c.googlers.com> From: jingxiang zeng Date: Thu, 20 Mar 2025 16:43:09 +0800 X-Gm-Features: AQ5f1JoO66jRwNs-W1b_FzIjxiMjARlC3RUOD-o5yAETPWyRbolxMcMwFWY_nVI Message-ID: Subject: Re: [RFC 2/5] memcontrol: add boot option to enable memsw account on dfl To: Roman Gushchin Cc: Shakeel Butt , 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 Content-Type: text/plain; charset="UTF-8" X-Rspam-User: X-Rspamd-Queue-Id: 19F631C0002 X-Rspamd-Server: rspam08 X-Stat-Signature: rjird6sksgmzt39rzb3aujmo474bsb3j X-HE-Tag: 1742460202-135093 X-HE-Meta: U2FsdGVkX18g413u+gaB9qM+R/b/6dHBBu15ystQODcfNKXHbSwaQbDgahBT8wrz0Neit4moYIfcMkNNpJPuBOg7fsAlOUki1CPdvBHoXqsK1vsZdqG8l4f6mQD5LjP1FnPThIDzkTGf4hYJApWRiKETSa1G4VyMyzgUlKoAyIRZnjyHSzIYof4REIjg0SGLbpSVrQOuuEp3orfzDhcgayffFJNuhICnbTNDdI0Dsb2VC3ktiaIDev+C3iyc3cnlTIIJzQ4kK1ek+Y6VDMmZF7jKZpE41UjYNDI77+l5pdNCAH8u4lxYIkDNdBn9xhqKIZwtXH/I544kJmYvP8V3zcxJV6UjpYP77QX1jEkAA5UoxExZS02QbovcuPyMIioYcEbDp3BA404Im2JCYVc5JDz3csXZqEgx1kFI9gChxrbqUDrJEr6VKqVRLFhkt8ZKu85qMPFusxebOWAkKsMKe1C8yfcMDehzMKWNfBbkaW4h8yLwVlVa6jB+3vXHY0wQxG9y6PrUvY6vX4zxkoslpamq2xaMMch2nEljt/o1PpRrD0RQ6Mhzmfq8dkkIWh64e2AG57FlJPCpYRCRC324dZiS0hG8rekOjqUfyV8WF8g28aPvBPzvGcKLfpcaMJ3ZiachQ+eHlPbq8NLYvxU1oPdS/rt3Vlo8Yqx0QA9dB6LGYUvKZQz7w1o9dc3c0em8TIFkLCJlIXNF/1R4bg77a+bYx1Ea0RAiwRKgSvTcJNRRhSyAMNTG5d2G9xQevdWLmddyX0LlQpW93ReQGM6CEL7ErJK9u+wIqbQdyfW10OoBvUqNPmsgFE+HQTm9phBo6G9L8Ilwf89dPWCACIDVwmCgOSTP6/YLaLD/XJQd6ZZuMbCX2Pq7R7fuZI75CWa7scdA01JyJJqX1dhTAVA5xv6ozR6q43Hi80TTc1aJhhLipNna0d6MAS2udKf9E+X/AEGfiHonMh/uYasBFHo RpGxpHLQ /okUrG3V92YFEvEM= 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 Thu, 20 Mar 2025 at 06:32, Roman Gushchin wrote: > > 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. Yes, this is mainly intended for use with v2. > > 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! >