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 7C409C369AB for ; Mon, 21 Apr 2025 09:13:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id E605B6B0008; Mon, 21 Apr 2025 05:13:55 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id DEB956B000A; Mon, 21 Apr 2025 05:13:55 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id C8C2A6B000C; Mon, 21 Apr 2025 05:13:55 -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 A80C16B0008 for ; Mon, 21 Apr 2025 05:13:55 -0400 (EDT) Received: from smtpin12.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id AB5B5121C3F for ; Mon, 21 Apr 2025 09:13:55 +0000 (UTC) X-FDA: 83357488830.12.DDC54A5 Received: from mail-pf1-f178.google.com (mail-pf1-f178.google.com [209.85.210.178]) by imf22.hostedemail.com (Postfix) with ESMTP id DDF5DC0007 for ; Mon, 21 Apr 2025 09:13:52 +0000 (UTC) Authentication-Results: imf22.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=kTOC6q0e; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf22.hostedemail.com: domain of hezhongkun.hzk@bytedance.com designates 209.85.210.178 as permitted sender) smtp.mailfrom=hezhongkun.hzk@bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1745226833; a=rsa-sha256; cv=none; b=SPBhv/3us7na/bNw9ChldzDC/JLBGNb+JO/bbmFMkplgXJQ01WytyVWAg3zdZLu4kjygeF FFbNOX/LJ/OlssvFm2Y61mpPGOH8GqznKXGkW4D1sIV0cRZ4kF3vFovVe7I2v92OLYony2 jZbc0OLzEfqt4StzXdtG5VKZn/9e5+M= ARC-Authentication-Results: i=1; imf22.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=kTOC6q0e; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf22.hostedemail.com: domain of hezhongkun.hzk@bytedance.com designates 209.85.210.178 as permitted sender) smtp.mailfrom=hezhongkun.hzk@bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1745226833; 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-transfer-encoding:content-transfer-encoding: in-reply-to:references:dkim-signature; bh=sAvCeYCUp+x3TneAk3XV4vYqRfxvUTcMHcVdkQKAbNw=; b=V4DeMJXeVarUAmfPPHoAFXYaTJMYeurFZFYd9GAq3veG1S3fj6TyKjbosrqTdUcbwPnZR7 9H17X0k1pFF5FZiD3jOeaYqAICXiSwJJXTk3YOG2ux6li46Qr7UyYrZUJrOV8s0Wz8TpGb axd7L7cqi/+2wBRuHYCo7pp4eTyqiAg= Received: by mail-pf1-f178.google.com with SMTP id d2e1a72fcca58-736aaeed234so3085349b3a.0 for ; Mon, 21 Apr 2025 02:13:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1745226831; x=1745831631; darn=kvack.org; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:from:to:cc:subject:date:message-id:reply-to; bh=sAvCeYCUp+x3TneAk3XV4vYqRfxvUTcMHcVdkQKAbNw=; b=kTOC6q0eYAcEBUHX5c1RicEoDVrDttojyHjfj99YfpAX3YVMbRDlvXPtVwUn1U4ybe Y6VcpvX/zBlQDjpF4xfa2NSbGiR7/wr6Yt/OXXpKjYu6xSagfdAcZjNbIu+8oe1hDkO3 UmVqJbmWTl1Cp9ppA8irpsF7hJu1LMB9dcGqeBa7JwbqrE9WxDpK4Fg5Csj+U/zTZ6w3 1HD6tiCqnzexaAUf3tN8m9hwgvi9srOywK+31jlxa6v+EyAd8aI/83HTFcWhvLdo13Ct FRIpPcLHL1e0nmj3ZBF6jnXOT1d6i9oic2trtXdK7/7lWCl2l+PTTbcrgJ8WGUX8xG1D SVRQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1745226831; x=1745831631; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:x-gm-message-state:from:to:cc:subject:date:message-id :reply-to; bh=sAvCeYCUp+x3TneAk3XV4vYqRfxvUTcMHcVdkQKAbNw=; b=WkiL2JNsnYd9uzE2dMfdVggz6LnAnjRLJCIAi6+/VH3qcanZCivEeAyS7DD+9dr1kc WPCV1vfkEFJxdNeNnx6FvKAjETN+fxzCSi+934zCeD96BIdssV/2P90+sK/q5MusPaRg Ou5uqsPA3C/MiRMzulrujhaDlApBxTLvbdAd981H4btPEJx8suXgG/BzrxU9v/cFjnFi I+5QJLbxkkaS1wNf/WJdlqrbvmT4vutvtKxxYqNMGxm5XSPtPKV4Hjd0BKFZxpYp5zMP GxXk799PLbInxsJLKHx/dS/IWnWZdLo61RWeQ/nWnbHwAWIACfGwXkaacJ6YyGcTfeoa Ymig== X-Forwarded-Encrypted: i=1; AJvYcCU59WnOMp/bbU2Xr+rRMc1NeLyDM8j8xI6o9H89C03y06e9HpTUCC3mckYasnBCcXY6utnRRnd0WA==@kvack.org X-Gm-Message-State: AOJu0Yw5kFPigBApNc8DYA3Bt8lFLfR3yafa4ZfjCVcMrB5rWuEjXXm2 zr1TBmIbCa1a9ka/OgwnL8E0m248qx21j6keaeQZYgrg/eYPBR1xmKNqZkZwnzI= X-Gm-Gg: ASbGncuiuYQ4PwaBHGIWn4EadDMJjtKSS2kKmmjFuADCk/+RkUmKmxKftmvq/xv0uBM A7Rpr1j86853rEm6FUC8ZYlgoi38Dz/pxJAm2fG/0fKeA9WtD9w6YWcV9mreaHP8ex2hrnl2xXY e0JGDNsflIDj6EwNRUZDPhSYK/j15ID/bVxNQEIRR5xJMRnkKs/cTAqwt3H2mjTxv6Aw2vEXHQc rKhKJWyx2YG92vAO6kXOTPFN84zq4wGe4DairkxwWnx0h4w6Cf7w4sPxfQnGUTfA4Z5fQcYFVuy ziGvr9zoMlR/RaTzKEN+7YLM+h/s2ENUL3dcnHa5HVSN+/SL/frgznFtiAk7UZ4+Vw== X-Google-Smtp-Source: AGHT+IGn1SUCrQl8oXH368WxO807alYxuylpceMsJ9Q14IYZjIpfBiR2WXsaug7OD3joBrOnWXV4FA== X-Received: by 2002:a05:6a21:1084:b0:1f5:5b2a:f641 with SMTP id adf61e73a8af0-203cbd207f5mr16239273637.28.1745226831416; Mon, 21 Apr 2025 02:13:51 -0700 (PDT) Received: from n37-069-081.byted.org ([115.190.40.15]) by smtp.gmail.com with ESMTPSA id 41be03b00d2f7-b0db157be12sm5246285a12.64.2025.04.21.02.13.47 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 21 Apr 2025 02:13:50 -0700 (PDT) From: Zhongkun He To: akpm@linux-foundation.org Cc: hannes@cmpxchg.org, mhocko@suse.com, yosry.ahmed@linux.dev, muchun.song@linux.dev, yuzhao@google.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Zhongkun He Subject: [PATCH V4 0/4] add max arg to swappiness in memory.reclaim and lru_gen Date: Mon, 21 Apr 2025 17:13:27 +0800 Message-Id: X-Mailer: git-send-email 2.39.5 MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Rspam-User: X-Rspamd-Queue-Id: DDF5DC0007 X-Rspamd-Server: rspam04 X-Stat-Signature: meitsdjb86gn4o13beqo9ris7r1r6fx3 X-HE-Tag: 1745226832-393358 X-HE-Meta: U2FsdGVkX1+Y4vSYo2w0AIYbTFoyKKeOPzy0XqAadrpgYP11TWXNNUntexxb7m6/twwD5txjmTih31hIpj6FUtX8vG4PIlJopjKmT7HR+Kak8B8JK/vk251KwuOMM7FALy9rwRN8FQq7ggYKzOcTVuVEVnWT6qCQFzRNr834rA9fmMt58to3JLdeIIHnV1tSNaRjAutqDG690FP1bz/e4MVS28LJxsr7LjQs1RPQ2P9p6UWEKnVeZcKwa8QNiE225MZeFSa2DWshZEkXILtGhrvd2q2O/H/GDB8Fv1tLHdaPtX2s/vJxDPDAdliFrMEewHxRSpJwsqScArMOusXGeWjKUnzAeML2IAgq0IzXq1MntknCgY4UTCKjlBUVNG64XNDYiANhkERpgFvDRKSmZ8kk6j3QbYdkLU4MqQYbbD44Y3jeBZ+mx6hQQchbds8YcQjVnXrqVTQAfYz5TmmPeYep6aTjT6Gv1MNXtwurjZp4VFApMp0sCoCgFdkscctkKUA8f64zKWDq3pO+G0sqnfxfNGG6kWZTQOD5QYtOmfleEIytuc1BNEmRz5rJMoBhVZHZSgsQd+La2T9Thy5IRFh3Di9WFMbNOnvg+J8LVxERZjBTHB+/fYDu490YdzIRiUSFnNUWatkmE9atuRJhexmSy9bhtJtQKXKYUkN6io4aD5yyi7NjrtArdCn4gIohMN5x49Uz5dbJ2i+ZhhTVI0ufhNGcjzwTm58jkFi/pW97t7UknmXrcaE8Z0TMl02eDbGqOdc224tT5w0Cb40Rwu4zkWKaxnnpFoQNT361gfhtO6xYwPPXRW3JOjyjTIbT7rxV2CsDQBwFmB/506eGpKWaAZASzV5Gj26zrPdvcmxqqts/bhGEOGOCC8WSWh2B2qvQP5hYXFQ6E+vobf9iOmSAYdLikdXiRfpG7PJIH61pXwo1tQvAeu9Ko8sAsHz55LDT5z3DA696uedtqJj OIaBbJ89 o05Z0wgi0IXS2siZZeotC80bQ3hK/GgE64PVNdS+ZrOTHL8a7Zz0BZg85Xp8r4vcCxSs2glhudFCsYox6kIbW9sILWbEemjhk16HxQW9fwQyHH1/h21KcRDmJx0Jozsoh4FrV+cmjV/ghFE/09AZMK4FtWI/dCUnUgWEaSiO+tgzm9ty55Aosbqv5bKrUvMVeDQ29dJOs5VdU8SpavPBSJ+TWGN//9HD/rchJl14E9lU+5/dNx8NI+9wCxn/IHruSlNhekz/R0fZurQEi88GnJ0JkJyAFuNIv2ZwpjUoG2eJa8yS6gd5ccN9DPwvnLJULNmIGa9fOkPyLftPq0JkFiotP9pdF0XE1G+XByWCP+/uulcBSHzvCewC9Vq7KuGu3BNsbOpF1NUbPOLZDJESz26/9lhBTmvI/rnSYA1oDYdXT338q/cD5iZkleQ== 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: This patchset add max arg to swappiness in memory.reclaim and lru_gen for anon only proactive memory reclaim. With the patch 'commit <68cd9050d871> ("mm: add swappiness= arg to memory.reclaim")', we can submit an additional swappiness= argument to memory.reclaim. It is very useful because we can dynamically adjust the reclamation ratio based on the anonymous folios and file folios of each cgroup. For example,when swappiness is set to 0, we only reclaim from file folios. But we can not relciam memory just from anon folios. This patch introduces a new macro, SWAPPINESS_ANON_ONLY, defined as MAX_SWAPPINESS + 1, represent the max arg semantics. It specifically indicates that reclamation should occur only from anonymous pages. Patch 1 add swappiness=max arg to memory.reclaim suggested-by: Yosry Ahmed Patch 2 add more comments for cache_trim_mode from Johannes Weiner in [1]. Patch 3 add max arg to lru_gen for proactive memory reclaim in MGLRU. The MGLRU already supports reclaiming exclusively from anonymous pages. This patch formalizes that behavior by introducing a max parameter to represent the corresponding semantics. Patch 4 using SWAPPINESS_ANON_ONLY in MGLRU Using SWAPPINESS_ANON_ONLY instead of MAX_SWAPPINESS + 1 to indicate reclaiming only from anonymous pages makes the code more readable and explicit [1]: https://lore.kernel.org/all/20250314141833.GA1316033@cmpxchg.org/ Here is the previous discussion: https://lore.kernel.org/all/20250314033350.1156370-1-hezhongkun.hzk@bytedance.com/ https://lore.kernel.org/all/20250312094337.2296278-1-hezhongkun.hzk@bytedance.com/ https://lore.kernel.org/all/20250318135330.3358345-1-hezhongkun.hzk@bytedance.com/ V4: Split the patch in MGLRU and add comments to make the code clearer from Andrew Morton. V3: In MGLRU, add max swappiness arg to lru_gen for proactive memory reclaim. Add the use of SWAPPINESS_ANON_ONLY in place of 'MAX_SWAPPINESS + 1' to improves code clarity and makes the intention more explicit. Add more comments about cache_trim_mode. V2: Add max arg to swappiness as the mode of reclaim from anon memory only in memory.reclaim. Zhongkun He (4): mm: add swappiness=max arg to memory.reclaim for only anon reclaim mm: vmscan: add more comments about cache_trim_mode mm: add max swappiness arg to lru_gen for anonymous memory only mm: using SWAPPINESS_ANON_ONLY in MGLRU Documentation/admin-guide/cgroup-v2.rst | 3 ++ Documentation/admin-guide/mm/multigen_lru.rst | 5 ++- include/linux/swap.h | 4 ++ mm/memcontrol.c | 5 +++ mm/vmscan.c | 42 +++++++++++++++---- 5 files changed, 49 insertions(+), 10 deletions(-) -- 2.39.5