From nobody Wed Dec 17 08:56:08 2025 Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 02323212D96; Wed, 19 Mar 2025 06:42:15 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742366538; cv=none; b=YI2dGBecnwCcBGIiFQqXIbZpZarfc8HSCfxQuna3wXPsG5eXSIWgav4vWqCDDANZHWLY8s/sePf/c073an1X0/c6iIPW5ZWfHG6YFf/1zMghNo628dspolUtG6N8cIczUfNZmhhlZ7wqMQr22HUyWMmtEKfjicVIdwzovmQYcSU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742366538; c=relaxed/simple; bh=C48LCA0HEiMUWJYeligQIASJjtm3iqfLDOJl4K5/1pA=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=dzYNf7ck16yyKdUjYB4xYM5XQhVBSjtRscJdhfDZCOsTyQZcIo3XocCd+0EfZ2gclie7kqGhcsSed2BRZwXkoA3Kfqeej+ScOSMSlrnWDOYPYee94/GUi/VpTaBHtRskbI4flSsl+2nvIZ9eeUF/G8yeFIEte0QuK4pH1yZZ6Ac= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=JoJ8X2Gn; arc=none smtp.client-ip=209.85.214.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="JoJ8X2Gn" Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-2264aefc45dso8639015ad.0; Tue, 18 Mar 2025 23:42:15 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742366535; x=1742971335; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=pXItn2D3Vis84qRdx9jbeX/+b7biQMSa8SO4XBFLs9U=; b=JoJ8X2Gntk8TiTte2/3NB/NbxO9awYYqc6SQ3Y947U8Ayz8mx+Vm4XY002oFli3VHH kXw6y67/xs7ZMYy3s57eux4UGWLMPf6U3u5lqR9JTkkrSMk22A0GdZGSvQHOzjKftScg K6FzrJPimo3Yfb5lrH2MAVs5GrKMaj3YJsdsibeNJX0t2xGZH9/au1Hyt2kyb3CUHz/j ehmwVMHS9OTIK83ol62kYb8oNjw91H/wh9xWLG67lVPhzHPseX+sZjtMY5VsagfpXJ7H 2rnVPO0/ncre1fEfjaVHCxONtj9+JY9kMZmogg901f9EnlpX3O/Ju3712LsPbNtOALs+ JYCQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742366535; x=1742971335; h=content-transfer-encoding:mime-version:reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=pXItn2D3Vis84qRdx9jbeX/+b7biQMSa8SO4XBFLs9U=; b=uJPpUvKr5vBwexpjdEngoJ/VpTRi9e0fE6WwoyeSVgIHLVioKpSBvKNqPlTTnVmDNS Lr+uPatew23n0pjrYDb0+jIfFaOhlKhnkm03TfWzxd3xJWxOXlt5d3pnktFyMAuR5PIq XyrU5+VEhOmVsE8jv5YX6c9JEx9OrGHg2bBgwL4xd7mwucjCdSQyTJ9djkDkySJqRcPl Akbs5lp3FcBo3Lb7vqVIdu4C+dmcZv1spMqXcX5y6LeLghlOx+R8XEcVfG/ridB24IE8 eeirtSGYDMJFd9rLzNKFyBHIEdsq/LjMo5xC/0uQTfVZOdWpdMygJHgRopZksFpetR0c s2mQ== X-Forwarded-Encrypted: i=1; AJvYcCUSlZPAeS3zeD3pWpVepyUCGdF/FHxjACcQpOX2zOyK/0kdX6mC0gklsoEBOP/KCiS0iLZTlL/ajPH2i/Zw@vger.kernel.org, AJvYcCXQNVFwbBR3zpMU+k8LCLIhg7Ezkyt8L3U3cvdDCwZd5ODLBlUiF0PB77bR4O3JGi3Ph48wp86x@vger.kernel.org X-Gm-Message-State: AOJu0YzRa/aeVIk182G1G3sJ8okhkSEIEVqul/MKMVITYarY1stvqULH EgE8YlqbF6q3Tq4by1SoHPrrWCburlizmc9UPRbYt0O1kcOqQbz1 X-Gm-Gg: ASbGnctmFk8ByBC4TfS6fLGxPYqNSUPKgIosgfWmCPmDhthod1BTlSsIq82iMCMW26K MJOmtjS5T9MJU1w0ptCUUC4sgVLO2iw/FyZVYs+rrp8D4Wz7qWIZDyTSo8SKAnSBC5Emuj84WUG CdAHwJSKHb3kI+LXsLXPkrkdusHv2k/wHOLGfqx3dDbJ8boG/58nGCnW+e/0ndd95osEwpVxpsz mp7BOZmFAFwoZCcsYC4Sjrdzx6AC0aHotaf9fXr/jrRaZrlknAQFWIrCNLgdicA51t43jaj9vvp sq8CoIOa3KqHE/YJRHWpAMcfREPw4AQB5bfI5h3bzFrRPsDMBeeXDwgqN1IovOQiYI4BX8yHZLy 4i3ftcGDlAclFOQ== X-Google-Smtp-Source: AGHT+IHAiybYnuUAbS1337n8MIKxXlM5d3eEixwdqICuE8kaYDo9G1K0ymmFrvbR4m08KEEHu5+UJA== X-Received: by 2002:a17:902:ce0f:b0:224:584:6f05 with SMTP id d9443c01a7336-22649c89560mr28245025ad.41.1742366535093; Tue, 18 Mar 2025 23:42:15 -0700 (PDT) Received: from localhost.localdomain ([14.116.239.35]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-225c68a4876sm106191835ad.70.2025.03.18.23.42.11 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Mar 2025 23:42:14 -0700 (PDT) From: Jingxiang Zeng To: akpm@linux-foundation.org Cc: linux-mm@kvack.org, cgroups@vger.kernel.org, linux-kernel@vger.kernel.org, hannes@cmpxchg.org, mhocko@kernel.org, roman.gushchin@linux.dev, shakeel.butt@linux.dev, muchun.song@linux.dev, kasong@tencent.com, Zeng Jingxiang Subject: [RFC 1/5] Kconfig: add SWAP_CHARGE_V1_MODE config Date: Wed, 19 Mar 2025 14:41:44 +0800 Message-ID: <20250319064148.774406-2-jingxiangzeng.cas@gmail.com> X-Mailer: git-send-email 2.41.1 In-Reply-To: <20250319064148.774406-1-jingxiangzeng.cas@gmail.com> References: <20250319064148.774406-1-jingxiangzeng.cas@gmail.com> Reply-To: Jingxiang Zeng Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Zeng Jingxiang Added SWAP_CHARGE_V1_MODE config, which is disabled by default. When enabled in cgroupv2 mode, the memory accounting method of swap will be restored to cgroupv1 mode. Signed-off-by: Zeng Jingxiang --- include/linux/memcontrol.h | 6 ++++++ init/Kconfig | 16 ++++++++++++++++ 2 files changed, 22 insertions(+) diff --git a/include/linux/memcontrol.h b/include/linux/memcontrol.h index 53364526d877..dcb087ee6e8d 100644 --- a/include/linux/memcontrol.h +++ b/include/linux/memcontrol.h @@ -62,6 +62,12 @@ struct mem_cgroup_reclaim_cookie { =20 #ifdef CONFIG_MEMCG =20 +/* Whether enable memory+swap account in cgroupv2 */ +static inline bool do_memsw_account_on_dfl(void) +{ + return IS_ENABLED(CONFIG_MEMSW_ACCOUNT_ON_DFL); +} + #define MEM_CGROUP_ID_SHIFT 16 =20 struct mem_cgroup_id { diff --git a/init/Kconfig b/init/Kconfig index 7f67d8942a09..669e39214244 100644 --- a/init/Kconfig +++ b/init/Kconfig @@ -1012,6 +1012,22 @@ config MEMCG_V1 =20 Say N if unsure. =20 +config MEMSW_ACCOUNT_ON_DFL + bool "Whether enable memory+swap account in cgroup v2" + depends on MEMCG && MEMCG_V1 + default n + help + Say Y here to enable memory+swap account in cgroup v2. Enabling this + option means that the semantics of memory.swap.max will align with + memory.memsw.limit_in_bytes, and memory.swap.current will align with + memory.memsw.usage_in_bytes. + This is particularly useful for workloads that require strict memory + and swap limits. + + If you are unsure whether to enable this option, it is recommended + to leave it disabled (N) unless you specifically need memory and swap + accounting features in your cgroup v2 setup. + config BLK_CGROUP bool "IO controller" depends on BLOCK --=20 2.41.1 From nobody Wed Dec 17 08:56:08 2025 Received: from mail-pl1-f179.google.com (mail-pl1-f179.google.com [209.85.214.179]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D4128211486; Wed, 19 Mar 2025 06:42:26 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.179 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742366548; cv=none; b=qUu3qmf/SaixNeUR9Jr3lwSXA6GFmmZvC4YKmWwCz941gziT5UW2ilwc4Qls+dHsc8vg3Nlh8W3gBzBnv+GGm5w194aqfLmkzjb042Rt5wTDG0KNC9sQYa0Q59KKNr5eHEMXWZDxPYvWDJXu7ku43NK05fvY+ReZ9wg1n8Pdu8E= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742366548; c=relaxed/simple; bh=yFX+tNRG+cyoEMpYQZtrIgkGdqwU2A6wwNqYVnh2f90=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=AqKyrAdn7Zz/2sCFy53UdG/wM0E/IZOU7rYkxG+DE7mm7QZP5iMvRLj9xaFUxSZEDSYINRAkV11nfM5iAWnzMsDEUnmdhFMjvf9c91zo0wn23fFrRHUXMRNxDQi1PF0htzGh8QFxCe/aqacH/cXrkW4Wi7EsEmkzBHNG4Hxi8rc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=BhqkxPxt; arc=none smtp.client-ip=209.85.214.179 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="BhqkxPxt" Received: by mail-pl1-f179.google.com with SMTP id d9443c01a7336-22403cbb47fso121806165ad.0; Tue, 18 Mar 2025 23:42:26 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742366546; x=1742971346; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=sp0DFTtVb9BoLhEjuOHuZHKpQHrM7JXx2GisdIMoCLI=; b=BhqkxPxtQ7+qiJzuuaTjM0BJZXMidG8sv8lknhpnfczftokJWSW3xf6VYm5AOlszpU XrEsbSwGChUNYvib7l0QT/nv9kDVkCzbfURnc+RrcBBTmpe+UOTIIWFb2/LJhgSBFA+0 YgobXsJ+hTmGOGbxpyynKi18tgWfWYx5nEzPY+vNDK9QlmDyG+Rs7ejgzTH3Vu5MOEZk UHQkgfajcR23d9ClS5LfPYF9Ek0QCQ6aUKgX0W0sKg4ukkLZ+44O5Q617X9hFHvk04WR R4W1jBORxPPHX3sGzJV5Mk/iytNqZ6NFSknFrltuF4hc4L9x6xGOXDj+Ow4DA51+VV2k LSiQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742366546; x=1742971346; h=content-transfer-encoding:mime-version:reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=sp0DFTtVb9BoLhEjuOHuZHKpQHrM7JXx2GisdIMoCLI=; b=Bzq4chmEUu+2aXQC8N8ea4Q3/OCHWnvIjGaOQrxEulJuExyK3/+UwLPoea5n76UeIH QsMbjQLz49S0sw/GyRw/gL4/bgrGUnN58KZufsqP/mR+J1z67IH4U+3h5gDTiv1lHSjC OQVFs6/86Pv4lq2t8MzNQEuoXfL4YX4rmunRA+/zG2+tqBD2L9yB8JQde8ZUwEf0f4Sy QX9k+lgfRnesNxS8f49oFuJirusNBCYlGrIBfneYLE2fzz0ItDnrpZKJx9JlXjApPRLk 0Ynkd8yOCSb+xciYvDfAQKhHnOJmIn/sNv8mPK+Su9e71nmvW/UvqOLtmcOclpCjtoWo z29A== X-Forwarded-Encrypted: i=1; AJvYcCUrTfKEDv4lpd2eYL97uvgg6fpf2FrSjnbF9LSz2jMK9ONeERVcSx6wtfoyZ1Zh1YqMX/zbb8ZJpi7WwS6g@vger.kernel.org, AJvYcCXTkWMG9TRdSaeBPVxT/ZSrjesv7pFiqdw51J7OgyhmCFMWepGYYKGkMroNhOSUq5O68usuVKgQ@vger.kernel.org X-Gm-Message-State: AOJu0YyPr2+mNEmOr5IDa9gYQC47z3E7VIow48xD6fgYnPhCAYKlm1vT QZTt1gE10ktf4FGXEHFafvT5PW58ruhAQPWu2dztw4PHBhI4T1ZE X-Gm-Gg: ASbGncv6S5BLpnw6D3SdZYGe60LgfVVYYfsGCECZSGMlCbgGt2V6suzm4nbPjaMJ3AJ Q2D6KmFmxVCHnsjAeAPvA2QJ/OzxA6iee2uuZsAO7LIa6uXm6BqYJYVqlMEbkxjt6lVcZ2O8jXZ ljw+l8gq8JSqU3jWoERlk7VCwCEbZ0AIPNqV8o9oE5I6b5muRHVA67rJBRsDJ9Y57oe/ec+3y98 FP0iBPXbooxxWICQJPWK8UMXOEgdIKbj3SF62/WiRrt2uGbbTFuc3+fxQPKO5I6a8/KN5sLYZg/ 1xmVdBbqzIWVPqibru65oIfrafMcd/fAqEp7nkfweett/Gid43hC5yKCHYNWfFcDkQXQ194NgCq uHbRWnde6i7ENyQ== X-Google-Smtp-Source: AGHT+IHEPdhlKFwFwnOTSvPf4IDO0wzZjBYO2qh3ge8Q7B0xYnKSmm8x+kb9JdKPYwCJ9YhdNLB2kg== X-Received: by 2002:a17:902:e5c9:b0:215:b9a6:5cb9 with SMTP id d9443c01a7336-2264982afffmr25696235ad.5.1742366546036; Tue, 18 Mar 2025 23:42:26 -0700 (PDT) Received: from localhost.localdomain ([14.116.239.35]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-225c68a4876sm106191835ad.70.2025.03.18.23.42.21 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Mar 2025 23:42:25 -0700 (PDT) From: Jingxiang Zeng To: akpm@linux-foundation.org Cc: linux-mm@kvack.org, cgroups@vger.kernel.org, linux-kernel@vger.kernel.org, hannes@cmpxchg.org, mhocko@kernel.org, roman.gushchin@linux.dev, shakeel.butt@linux.dev, muchun.song@linux.dev, kasong@tencent.com, Zeng Jingxiang Subject: [RFC 2/5] memcontrol: add boot option to enable memsw account on dfl Date: Wed, 19 Mar 2025 14:41:45 +0800 Message-ID: <20250319064148.774406-3-jingxiangzeng.cas@gmail.com> X-Mailer: git-send-email 2.41.1 In-Reply-To: <20250319064148.774406-1-jingxiangzeng.cas@gmail.com> References: <20250319064148.774406-1-jingxiangzeng.cas@gmail.com> Reply-To: Jingxiang Zeng Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" 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 { =20 #ifdef CONFIG_MEMCG =20 +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); } =20 #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); =20 #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=3D", memsw_account_on_dfl_setup); + \ No newline at end of file --=20 2.41.1 From nobody Wed Dec 17 08:56:08 2025 Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id D7E1924EF87; Wed, 19 Mar 2025 06:42:32 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.176 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742366554; cv=none; b=FCMZ1ToEm4hZ8aLEIntwTCzBPTyqiMgOBDtNv/s+qlJ3ReyNMW0cOy4evc2JjN/hiAa3/E///wDU1woNpEwLgtxtqY3TuuEdqoPBNy9go7z9M70F14WAhzTRZBIPwFmspn1mNyywbAIs9S4t3khhRO+/Gp5CM5JLmSo9dsfhHg4= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742366554; c=relaxed/simple; bh=uwPVGWmIAA6vjSh3MMDGl0gpuzjGJtL12wVwx5zcRBQ=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=cci1+GArkd5rvxFEK5adcig8FWMBuKOiELXmHHiYDtXxev/U4UqNYgC7p1KZrdluPyEpwSGeeHKQ5Rttufb7Ve37f0aGygdzS+4eGev4Qo3F7PZRNUIPOY2r/f/WnmbBiF+Bwy9bGC6E6OViAEW1ukMETAF2TVq2Ul2WecyDoOw= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=MJmTxEzs; arc=none smtp.client-ip=209.85.214.176 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="MJmTxEzs" Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-2254e0b4b79so24660815ad.2; Tue, 18 Mar 2025 23:42:32 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742366552; x=1742971352; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=eDGgoAuFU1j/4cPuHxdFsXeRUQzRKuxaJDEI2tA88sE=; b=MJmTxEzsMfOWora5PAlwLqTUVhM6mTNaE0w7NtD3AxOE4ZBG/ltLpXCavVY/+dgcy4 QNBraYRA7d5Mj/L5Mq89E06jddhSOuNpdpJ2t15doWEZXYrblTF3WJBi5PX69N/2DQKP v3mY+DHdlZrIVn1a0P9tOiePTbhV1a9bxAbOEzTd+4xmBZ7ZPw+kmDD9G6EBvqR9uy7M jli6Cr3DCeNPU1JlCk3TMGB4jjMmtuh28tieZ6jkqAdefChR8RTEYiblv2R6kmsR1WUK CN0UvmmuAiAhxgFZfFXV/t13b1lbKM1Cqlqn4Bhr8JqVhzS8pZchy0UmINdjDX0LJSpC S/TQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742366552; x=1742971352; h=content-transfer-encoding:mime-version:reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=eDGgoAuFU1j/4cPuHxdFsXeRUQzRKuxaJDEI2tA88sE=; b=oLtALAyYEzP4SZsEcJwdit4wN1hTnMnsqXZlFEsXqxgT7c8LR6GlIRDNrbRFzTDp5t RYP7KKSaURSvZC81zfevZBX77fD7/T1QkBHZq+IEWJXNQz7gMRfXWyiNrBC3AlSaPu9K IaLanI+HEUkgmG4KSKSUB/KgOYsTzBvV1DNtoNXV3FE3wDCYMJr/HqgtzWg8ILEC2fMu rgP4Pip2JWEzjJ1OQWSe8Pn7PWSfJFXbmzCTllKg6OKvItZQjRUf033EcrcAxy+I+6tP iD8O555AnL2MaAKFrqTwIiQCVyZ0iDWTPHLiZ5rQjNwqhLDCs/HMbFTXsS2o23j00auS yC+A== X-Forwarded-Encrypted: i=1; AJvYcCVOKdbYJaoL/yDZNP5g3ohByQw4QM+Atq393fTw79T4aNNjM5Iu1hCCetrQxlBzc+4ek0ce0KIx/KQmzTuq@vger.kernel.org, AJvYcCVSMeJHwadRwHnXtPivmwV71nE8iBiRfR/dPSu/2Cemc3rBlhGInkuXphbPdpCRnoP72C1ZR1Up@vger.kernel.org X-Gm-Message-State: AOJu0YypHs2VJMkLk2cXpbklIO3m6KSmhp/bGzUb/Lu1qJHHnmzSrokc K3R+oKVNIdlpPkJ8IRFD2+hVZIp2/ipGPJfHecoRqSDpCapGmWO9 X-Gm-Gg: ASbGncuczj6F0B7kMN87t6OQVZQ4QHtozlLiggYPV46oxmo+bZFzc2IyGjGsnCgXOwe 1qik9JQHmo/I92TxCRUlndU8bL/CD1rMEBcSrvIQqk+d+Q8vfbHsjQppxdZcW/IOfqWUfVhhUVo Kcx+sikSuOJUnadOX3nnPT8+vfYOG3fl3LgJfGgel6VU2DgvJz0/JDxnGu9r8/udgHOuTuhdpF6 ix51kdaReHULqfhAFcY6DQoltrk4V4E8/XSkhs/IMBZpfGSnnti1MxLiFBQGZ71YB+ayVFD4mUY GSqZO2FiKUS/EawCi8StbOhRQ8VcOpSn6MX7Adbgtnwd1xvo5OWQnbYLi37lq1aky/Q01Yd2lLp HkEEg4RZOL3HGmQ== X-Google-Smtp-Source: AGHT+IFAyKOiSRtBqjl5fZO4kWvi3a/4Npr3QIWJv0iu9jfu+/+dq5oOshJJhEmDYcMoWP8ZUFn2hg== X-Received: by 2002:a17:902:f688:b0:220:e9ef:ec98 with SMTP id d9443c01a7336-22649935c2cmr20608265ad.19.1742366552101; Tue, 18 Mar 2025 23:42:32 -0700 (PDT) Received: from localhost.localdomain ([14.116.239.35]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-225c68a4876sm106191835ad.70.2025.03.18.23.42.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Mar 2025 23:42:31 -0700 (PDT) From: Jingxiang Zeng To: akpm@linux-foundation.org Cc: linux-mm@kvack.org, cgroups@vger.kernel.org, linux-kernel@vger.kernel.org, hannes@cmpxchg.org, mhocko@kernel.org, roman.gushchin@linux.dev, shakeel.butt@linux.dev, muchun.song@linux.dev, kasong@tencent.com, Zeng Jingxiang Subject: [RFC 3/5] mm/memcontrol: do not scan anon pages if memsw limit is hit Date: Wed, 19 Mar 2025 14:41:46 +0800 Message-ID: <20250319064148.774406-4-jingxiangzeng.cas@gmail.com> X-Mailer: git-send-email 2.41.1 In-Reply-To: <20250319064148.774406-1-jingxiangzeng.cas@gmail.com> References: <20250319064148.774406-1-jingxiangzeng.cas@gmail.com> Reply-To: Jingxiang Zeng Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Zeng Jingxiang When memory recycling is triggered by the hard watermark of memsw, anonymous pages do not want to be recycled any further. This is consistent with the processing method of cgroup v2. Signed-off-by: Zeng Jingxiang --- mm/memcontrol.c | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/mm/memcontrol.c b/mm/memcontrol.c index c1171fb2bfd6..623ebf610946 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -5072,14 +5072,21 @@ void __mem_cgroup_uncharge_swap(swp_entry_t entry, = unsigned int nr_pages) =20 long mem_cgroup_get_nr_swap_pages(struct mem_cgroup *memcg) { + struct page_counter *pg_counter; long nr_swap_pages =3D get_nr_swap_pages(); =20 - if (mem_cgroup_disabled() || do_memsw_account()) + if (mem_cgroup_disabled()) return nr_swap_pages; - for (; !mem_cgroup_is_root(memcg); memcg =3D parent_mem_cgroup(memcg)) + for (; !mem_cgroup_is_root(memcg); memcg =3D parent_mem_cgroup(memcg)) { + if (do_memsw_account()) + pg_counter =3D &memcg->memsw; + else + pg_counter =3D &memcg->swap; + nr_swap_pages =3D min_t(long, nr_swap_pages, - READ_ONCE(memcg->swap.max) - - page_counter_read(&memcg->swap)); + READ_ONCE(pg_counter->max) - + page_counter_read(pg_counter)); + } return nr_swap_pages; } =20 --=20 2.41.1 From nobody Wed Dec 17 08:56:08 2025 Received: from mail-pl1-f171.google.com (mail-pl1-f171.google.com [209.85.214.171]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id AC1C324F5A7; Wed, 19 Mar 2025 06:42:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.171 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742366559; cv=none; b=ExWyxuAANho7IMZ8t/fTN+Q9qeDCgYWXlw+q7AkabnEIhs2HXlTmsif20HlpLqdaKDq23B/dN+2iUiCogxTJ/Qsh7LEyOKUfOs07bb2EjpJ58cZjOwbEXPSttEkeW2sTVvFMpcV/Wwcr2qSLTBUiExL5X9turJBbmPdZnChYOzw= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742366559; c=relaxed/simple; bh=B4KPy69TLaat/OJIeIvbTEHk/4yGu3xdBIlXrsUqLaY=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=FtrVJ4LRAGJL2B171qQKDsTS23ROhE8WmOInjhk4hD7Q4aYcguI6KFP7v73GzCpla92Hb8b3zSdTxiR8JtiK5xCqBpfWtn30y14cHF8xPXxcpgGs/nTsQBibyYP3Fd2EJIxlnkz08iJKCqOAXZxl8n13KRcXNr3iWjdYFNLiVZs= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=FJUXalLS; arc=none smtp.client-ip=209.85.214.171 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="FJUXalLS" Received: by mail-pl1-f171.google.com with SMTP id d9443c01a7336-2260c91576aso54871155ad.3; Tue, 18 Mar 2025 23:42:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742366557; x=1742971357; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=VG3Wd02sYbLjjRpwudjxDazboXof3Wg+sHi5kNrgZhE=; b=FJUXalLSAOTmP4Xdbwhs7Mc4gZNPWiG3Z2br4U6uHXow6ccCEK28USZQFVdOnXdsMr wCm1o0w3X5LznjN1nPAMDQoNkmxuXUcGtSJ8Rrp3xqXAwRS1ci//rP5j6O6zEDY+udzk HJLaJgAnOoYlCJ45krgKPNmBeBjP7VzEXdDrXSQZdCrVurCLdw4B7zvRUhCwBZN+7oNr V6IU6lARUgRfH7/UItytKNmzWT50A+1BW9pwUZELU9dBBk+B+aV+mwmHWhzz9Z/VWl1G 7qlsRPM1zXFF3a4PyO8QPWASVfmEbW8X1LUe2njq59DfbQHWO9sxvTMz0+Jr7uFKjmdF IUkQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742366557; x=1742971357; h=content-transfer-encoding:mime-version:reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=VG3Wd02sYbLjjRpwudjxDazboXof3Wg+sHi5kNrgZhE=; b=CWM3e1Pkv59KB/oeGT62Ve8xKqoiIGoPYuAm9EioyskKE7DyTSe0FryTp3dysv0wN2 6Mi81V3/YmlP9/6uGX1rXkwQU3fUcwkCH019k+TwH4CGxlDo+J+8dMn3b5FcVrBY57Mn NvbDS8nQmgcVuDFU33Iv3inT6ewb04m6wiqpWE+maJJTtu3ZiGOBCdHewCYj7X3YFjUX kKXxU4QEshKS1NJ22yfq3T5hjF1VxXe2WZh/Ldy9Ue/10Lalj+/1ou8ptfrZGwLaFGvO sNxKTMUUNN8ImK6PXwx1ppqV48XC/WAot5mQYggvbim2+zsyPtkyXD2gDKIOvdTjpSwi dJgg== X-Forwarded-Encrypted: i=1; AJvYcCW5n0p7jamYM04Mh3Bsg0M1mx8tqlkbx3J6EAwlUMA8TNAyfpcQKHxMZ5/3nuHyuTVKT+K/yJfLg2I+fTWh@vger.kernel.org, AJvYcCWDYimMaTzKQqGLd3PO/i6mVxeu9Ez9OdPdQN58oqG8r3klxZfbVX3U6R6h97pPKv91P7efTGQi@vger.kernel.org X-Gm-Message-State: AOJu0Ywa1rUwz//4sdNsUeAid6MIfucp4hGI1RupUC0/MoITl3dgTXaN 7PKNXpUwiuDoHFRZqfloPxfeWJxDnjYyF7USkB722txyx60Y1c1J X-Gm-Gg: ASbGnctQaY69NRvwhADmGcmm9GmuXbjZXXRMYxNYGxoQCTO9M+Rh4LDjKWhACStEHL6 K1GWuhCQZNoRt8OyDXrcz4LgAKidgIRnY6xy8OD7Pehx1PoENiKejRiQQ8QDXB+yHCrwS4+lp9A Gnv/u1v/XfH55P0mTuhNKBkK0l/WrwiBV9RDf5v+v4vVWRpzRG/dnJjU6yP9kbMTxuPyObXbOi5 b/syEiR5SU4oMIuWrPbHIq4j/gcxtHR9nKB+SRYJHaCr7XfrH+qwO+MXVkGlaZiykpxSfphWQYB 56Bzi7LsS27grU2Fln+vuWbaMvIyOLHqi89Sadj+7lmYqXBr6GCV8NpW+69N8SNXhtfsJRakLpr R0YhKIpRx20A02Q== X-Google-Smtp-Source: AGHT+IFoC/rsafExGZdoPrX7mXfBQRLZqX5ES4/CB7dhcohKP3VkaXzbs3HPOAlBNSQGytmkp2y/BA== X-Received: by 2002:a17:902:cec6:b0:224:26f2:97da with SMTP id d9443c01a7336-22649a3d6a3mr21556305ad.29.1742366556960; Tue, 18 Mar 2025 23:42:36 -0700 (PDT) Received: from localhost.localdomain ([14.116.239.35]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-225c68a4876sm106191835ad.70.2025.03.18.23.42.33 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Mar 2025 23:42:36 -0700 (PDT) From: Jingxiang Zeng To: akpm@linux-foundation.org Cc: linux-mm@kvack.org, cgroups@vger.kernel.org, linux-kernel@vger.kernel.org, hannes@cmpxchg.org, mhocko@kernel.org, roman.gushchin@linux.dev, shakeel.butt@linux.dev, muchun.song@linux.dev, kasong@tencent.com, Zeng Jingxiang Subject: [RFC 4/5] mm/memcontrol: allow memsw account in cgroup v2 Date: Wed, 19 Mar 2025 14:41:47 +0800 Message-ID: <20250319064148.774406-5-jingxiangzeng.cas@gmail.com> X-Mailer: git-send-email 2.41.1 In-Reply-To: <20250319064148.774406-1-jingxiangzeng.cas@gmail.com> References: <20250319064148.774406-1-jingxiangzeng.cas@gmail.com> Reply-To: Jingxiang Zeng Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Zeng Jingxiang memsw account is a very useful knob for container memory overcommitting: It's a great abstraction of the "expected total memory usage" of a container, so containers can't allocate too much memory using SWAP, but still be able to SWAP out. For a simple example, with memsw.limit =3D=3D memory.limit, containers can't exceed their original memory limit, even with SWAP enabled, they get OOM killed as how they used to, but the host is now able to offload cold pages. Similar ability seems absent with V2: With memory.swap.max =3D=3D 0, the host can't use SWAP to reclaim container memory at all. But with a value larger than that, containers are able to overuse memory, causing delayed OOM kill, thrashing, CPU/Memory usage ratio could be heavily out of balance, especially with compress SWAP backends. This patch restores the semantics of memory.swap.max to be consistent with memory.memsw.limit_in_bytes and the semantics of memory.swap.current to be consistent with memory.memsw.usage_in_bytes when MEMSW_ACCOUNT_ON_DFL config or cgroup.memsw_account_on_dfl startup parameter is enabled. Signed-off-by: Zeng Jingxiang --- mm/memcontrol-v1.c | 2 +- mm/memcontrol-v1.h | 4 +++- mm/memcontrol.c | 29 +++++++++++++++++++---------- 3 files changed, 23 insertions(+), 12 deletions(-) diff --git a/mm/memcontrol-v1.c b/mm/memcontrol-v1.c index c1feb3945350..3344d5e25822 100644 --- a/mm/memcontrol-v1.c +++ b/mm/memcontrol-v1.c @@ -1436,7 +1436,7 @@ void memcg1_oom_finish(struct mem_cgroup *memcg, bool= locked) =20 static DEFINE_MUTEX(memcg_max_mutex); =20 -static int mem_cgroup_resize_max(struct mem_cgroup *memcg, +int mem_cgroup_resize_max(struct mem_cgroup *memcg, unsigned long max, bool memsw) { bool enlarge =3D false; diff --git a/mm/memcontrol-v1.h b/mm/memcontrol-v1.h index 6358464bb416..7f7ef9f6d03e 100644 --- a/mm/memcontrol-v1.h +++ b/mm/memcontrol-v1.h @@ -36,10 +36,12 @@ struct mem_cgroup *mem_cgroup_id_get_online(struct mem_= cgroup *memcg); /* Cgroup v1-specific declarations */ #ifdef CONFIG_MEMCG_V1 =20 +int mem_cgroup_resize_max(struct mem_cgroup *memcg, + unsigned long max, bool memsw); /* Whether legacy memory+swap accounting is active */ static inline bool do_memsw_account(void) { - return !cgroup_subsys_on_dfl(memory_cgrp_subsys); + return !cgroup_subsys_on_dfl(memory_cgrp_subsys) || do_memsw_account_on_d= fl(); } =20 unsigned long memcg_events_local(struct mem_cgroup *memcg, int event); diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 623ebf610946..d85699fa8a90 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -5205,9 +5205,12 @@ static ssize_t swap_max_write(struct kernfs_open_fil= e *of, if (err) return err; =20 - xchg(&memcg->swap.max, max); + if (do_memsw_account_on_dfl()) + err =3D mem_cgroup_resize_max(memcg, max, true); + else + xchg(&memcg->swap.max, max); =20 - return nbytes; + return err ?: nbytes; } =20 static int swap_events_show(struct seq_file *m, void *v) @@ -5224,24 +5227,28 @@ static int swap_events_show(struct seq_file *m, voi= d *v) return 0; } =20 -static struct cftype swap_files[] =3D { +static struct cftype swap_files_v1[] =3D { { .name =3D "swap.current", .flags =3D CFTYPE_NOT_ON_ROOT, .read_u64 =3D swap_current_read, }, - { - .name =3D "swap.high", - .flags =3D CFTYPE_NOT_ON_ROOT, - .seq_show =3D swap_high_show, - .write =3D swap_high_write, - }, { .name =3D "swap.max", .flags =3D CFTYPE_NOT_ON_ROOT, .seq_show =3D swap_max_show, .write =3D swap_max_write, }, + { } /* terminate */ +}; + +static struct cftype swap_files[] =3D { + { + .name =3D "swap.high", + .flags =3D CFTYPE_NOT_ON_ROOT, + .seq_show =3D swap_high_show, + .write =3D swap_high_write, + }, { .name =3D "swap.max.effective", .flags =3D CFTYPE_NOT_ON_ROOT, @@ -5473,7 +5480,9 @@ static int __init mem_cgroup_swap_init(void) if (mem_cgroup_disabled()) return 0; =20 - WARN_ON(cgroup_add_dfl_cftypes(&memory_cgrp_subsys, swap_files)); + WARN_ON(cgroup_add_dfl_cftypes(&memory_cgrp_subsys, swap_files_v1)); + if (!do_memsw_account_on_dfl()) + WARN_ON(cgroup_add_dfl_cftypes(&memory_cgrp_subsys, swap_files)); #ifdef CONFIG_MEMCG_V1 WARN_ON(cgroup_add_legacy_cftypes(&memory_cgrp_subsys, memsw_files)); #endif --=20 2.41.1 From nobody Wed Dec 17 08:56:08 2025 Received: from mail-pl1-f172.google.com (mail-pl1-f172.google.com [209.85.214.172]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id 99C0124EF6B; Wed, 19 Mar 2025 06:42:42 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.214.172 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742366564; cv=none; b=V2MAaJ2YqB7ONR/ADXW2ewm4f22hPIwBhoo2RURMIpjPaPP/HF9ze14b4vs86Pk3yVGR39qCod1B9hqKi5c/5FKr+LbsJ8u0lrCMCFF2SNfFJkMObGLoYIOHUi6UatK3dGsrJ3veDRiiJWg1alwTLGbNDs6z5wgvr6klQNkA/Z0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1742366564; c=relaxed/simple; bh=yekJcRnovCpxxnQxCvankY4AaW9kF02jhHxmtnlm7Wc=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=Clm2TlUxOP8MR0S50EabHZADOFbUsn4P2BORvW1VQMLPZAEmKsdZ5A7fUBV0/tI+coEvCTAA7dq27EUSFwK7EXQvlL4ojwVIeMeDF6RXsgI+iThjSJTkRLJg7MAGyMgMkhqzxbMVKpCrswAmCYF9kc3BjhDGitymE8BHQM7vXy8= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=SSybLb53; arc=none smtp.client-ip=209.85.214.172 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="SSybLb53" Received: by mail-pl1-f172.google.com with SMTP id d9443c01a7336-22438c356c8so112171295ad.1; Tue, 18 Mar 2025 23:42:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1742366562; x=1742971362; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:from:to:cc:subject :date:message-id:reply-to; bh=5ZzC6AyENx2PETrsetwCdLxJEkubtTVJB70KlJ4iY4o=; b=SSybLb53VPAYuXo94t3yEntRoMzCdn+58a6aRvmt2celmuDshHCW1DySR2Fh0vR3Zw X10dxyMAw+qqTKZc2wEvtm0hwJIQa8UttZ3GUXdsbu/ftLsBSNpAMHDqJhVSPb0Ssc01 PrdZD+764ykdsB9HiQFJAI14rZOcejrakfOnWChlWXE0a287n/d9V8v3qdmkiTti4vZ0 S7BgdDvnVVLC+FrfYrwILqv6lz0k8aKiKcFgoE1Wl0v75j1zXoopUys+EJYviWxUXkVD 1G53VcZ+z7d9o7ZNG8ilYf86oVQTdnyMfpsnfTcGPVEPESbnEcNszcn8ndLn982qqdUa CHYw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1742366562; x=1742971362; h=content-transfer-encoding:mime-version:reply-to:references :in-reply-to:message-id:date:subject:cc:to:from:x-gm-message-state :from:to:cc:subject:date:message-id:reply-to; bh=5ZzC6AyENx2PETrsetwCdLxJEkubtTVJB70KlJ4iY4o=; b=VuvoImYlv36MKwsvuPal42IAzIsWKDO/FTlp5F+ERTScr8ekBrwwJQEudEHS3BgbKf JiXK2LhvncdD6zjiyEI+9IJMSYHg6AHfTkYLwKVHvOv2yI5rkrzdIQFQc4DNbWNCdMyw cEWPevgKGflXSXwdJQQ3mHQP3O5wLdXGYwzmLoUom+zAixLn0mkFcJ78sATY3ru7Bq1f bvawzZRMcO2+JGoStRTwoCUi9xUIRDGYl6x5uDJDv/So+n/oNGRgwOGruOXS+navs04I eicItnp+bkeOgVButk13rzh21OGZpszuAmntLiUlgR3yI+CvBmeZ9iC6nMptgUJ9LiBc XGhQ== X-Forwarded-Encrypted: i=1; AJvYcCUyaGpUjUN+7G3iPJDNpyAe2CUsbttRUGbUZp8Az9gPdedRYXc7akkZwyuTQZEBkoxuC7/dNJcF@vger.kernel.org, AJvYcCXQ6JJb8Wf6yRJg0jjlcXIhiQ65OnkhRo1ROeNC7XLJGsCrEw6ldhKs/97qfzs6DRdenBCsx3ylSyeYf1Qe@vger.kernel.org X-Gm-Message-State: AOJu0YwUqY4RmKF/35QEObKcSaN9cnlvHkvSc+8V+XNRQT/I7QnnA6eT JqI2tt/V50t/PBXGtZdNUDPQOY+WphODJqvpVDNNATnxy8qJ+0LK X-Gm-Gg: ASbGncv9VJ3jlVJ3zBRGAILFOp6qlQhG90rOElWQQ3phwtBk6mw1pvGGxH3tOVozKEs zh0b4XUp963f36yCMwIAv6OfmICBijY2nDXrFfb9gKZqoURC5xKOyvFJNG5LgehzGzudqQ1OTbj hyuHMUtWDddNagPHeZHWznFv46I8ztcAdiNmr5fj5YxQYkQBsaP6l5W+qMBo32EFwSa7vppoe9U bl1yZHxgcVFrGjkU0znrQ71Mi4f/2hhcr2K1LHUZK+ItMyNnf4yn4XDN7KthRE38xo5N5YX7QBV 5gLSW/QKENzoY4HSWJlRmUI12s0PVyfFpKPsIijUnBppNOyozJUNwbzJbvLTxMJlwpcku2CMLZE 10lpY4TkCS6Fjag== X-Google-Smtp-Source: AGHT+IGbMABhlmC/SfmCbNUIYnojPpflkLr+r17wa1mHNPi8StcJmSNkJieATMTXfn0TSct3XkdwOw== X-Received: by 2002:a17:902:dac5:b0:226:30f6:1639 with SMTP id d9443c01a7336-22649cbf81amr20878435ad.51.1742366561776; Tue, 18 Mar 2025 23:42:41 -0700 (PDT) Received: from localhost.localdomain ([14.116.239.35]) by smtp.gmail.com with ESMTPSA id d9443c01a7336-225c68a4876sm106191835ad.70.2025.03.18.23.42.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Tue, 18 Mar 2025 23:42:41 -0700 (PDT) From: Jingxiang Zeng To: akpm@linux-foundation.org Cc: linux-mm@kvack.org, cgroups@vger.kernel.org, linux-kernel@vger.kernel.org, hannes@cmpxchg.org, mhocko@kernel.org, roman.gushchin@linux.dev, shakeel.butt@linux.dev, muchun.song@linux.dev, kasong@tencent.com, Zeng Jingxiang Subject: [RFC 5/5] Docs/cgroup-v2: add cgroup.memsw_account_on_dfl Documentation Date: Wed, 19 Mar 2025 14:41:48 +0800 Message-ID: <20250319064148.774406-6-jingxiangzeng.cas@gmail.com> X-Mailer: git-send-email 2.41.1 In-Reply-To: <20250319064148.774406-1-jingxiangzeng.cas@gmail.com> References: <20250319064148.774406-1-jingxiangzeng.cas@gmail.com> Reply-To: Jingxiang Zeng Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: quoted-printable Content-Type: text/plain; charset="utf-8" From: Zeng Jingxiang Add documentation descriptions for cgroup.memsw_account_on_dfl and CONFIG_MEMSW_ACCOUNT_ON_DFL. Signed-off-by: Zeng Jingxiang --- Documentation/admin-guide/cgroup-v2.rst | 21 +++++++++++++++---- .../admin-guide/kernel-parameters.txt | 7 +++++++ 2 files changed, 24 insertions(+), 4 deletions(-) diff --git a/Documentation/admin-guide/cgroup-v2.rst b/Documentation/admin-= guide/cgroup-v2.rst index 53ada5c2620a..58869279f0a9 100644 --- a/Documentation/admin-guide/cgroup-v2.rst +++ b/Documentation/admin-guide/cgroup-v2.rst @@ -1704,8 +1704,14 @@ The following nested keys are defined. A read-only single value file which exists on non-root cgroups. =20 - The total amount of swap currently being used by the cgroup - and its descendants. + If memsw_account_on_dfl and CONFIG_MEMSW_ACCOUNT_ON_DFL is not + enabled (the default), this interface represents the total + amount of swap currently being used by the cgroup and its + descendants. + + If memsw_account_on_dfl or CONFIG_MEMSW_ACCOUNT_ON_DFL is enabled, + this interface represents the total amount of memory+swap + currently being used by the cgroup and its descendants. =20 memory.swap.high A read-write single value file which exists on non-root @@ -1737,8 +1743,15 @@ The following nested keys are defined. A read-write single value file which exists on non-root cgroups. The default is "max". =20 - Swap usage hard limit. If a cgroup's swap usage reaches this - limit, anonymous memory of the cgroup will not be swapped out. + If memsw_account_on_dfl and CONFIG_MEMSW_ACCOUNT_ON_DFL is not + enabled (the default), this interface represents the hard limit + of swap usage. If a cgroup's swap usage reaches this limit, + anonymous memory of the cgroup will not be swapped out. + + If memsw_account_on_dfl or CONFIG_MEMSW_ACCOUNT_ON_DFL is enabled, + this interface represents the hard limit of memory+swap usage. + If a cgroup's memory+swap usage reaches this limit, anonymous + memory of the cgroup will not be swapped out. =20 memory.swap.max.effective A read-only single value file which exists on non-root cgroups. diff --git a/Documentation/admin-guide/kernel-parameters.txt b/Documentatio= n/admin-guide/kernel-parameters.txt index 2758bc124f16..0aa9e4f85b51 100644 --- a/Documentation/admin-guide/kernel-parameters.txt +++ b/Documentation/admin-guide/kernel-parameters.txt @@ -644,6 +644,13 @@ nokmem -- Disable kernel memory accounting. nobpf -- Disable BPF memory accounting. =20 + cgroup.memsw_account_on_dfl=3D [KNL] Enable memory+swap account on cgroup= v2. + Format: { "0" | "1" } + 0 - memory.swap.current and memory.swap.max represents the + usage/limit of swap. + 1 - memory.swap.current and memory.swap.max represents the + usage/limit of memory+swap. + checkreqprot=3D [SELINUX] Set initial checkreqprot flag value. Format: { "0" | "1" } See security/selinux/Kconfig help text. --=20 2.41.1