From patchwork Wed Apr 9 07:06:17 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhongkun He X-Patchwork-Id: 14044180 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 4BC3DC36002 for ; Wed, 9 Apr 2025 07:06:55 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 09FB36B0139; Wed, 9 Apr 2025 03:06:54 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 04D566B013A; Wed, 9 Apr 2025 03:06:53 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id E5685280036; Wed, 9 Apr 2025 03:06:53 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0010.hostedemail.com [216.40.44.10]) by kanga.kvack.org (Postfix) with ESMTP id C44396B0139 for ; Wed, 9 Apr 2025 03:06:53 -0400 (EDT) Received: from smtpin20.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id EA6001A05C5 for ; Wed, 9 Apr 2025 07:06:53 +0000 (UTC) X-FDA: 83313623106.20.4D58EDF Received: from mail-pl1-f176.google.com (mail-pl1-f176.google.com [209.85.214.176]) by imf05.hostedemail.com (Postfix) with ESMTP id 9327010000A for ; Wed, 9 Apr 2025 07:06:50 +0000 (UTC) Authentication-Results: imf05.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=Buavq7U5; spf=pass (imf05.hostedemail.com: domain of hezhongkun.hzk@bytedance.com designates 209.85.214.176 as permitted sender) smtp.mailfrom=hezhongkun.hzk@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=hostedemail.com; s=arc-20220608; t=1744182412; 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=THZYEJIp0OpQWutbU1ZY1t2ANQ29WhjxUWkhn4aAs5o=; b=T2OwRUaHBexCRA7kIfMTrJchLkmvJx8zboHqIng9h0Xf5rfm2BZIb9qOFVMlWKz2FmoAaY ZuQd5uEmAz64W6Xpx4T4CgxQ8WC9EfyiiSZ5ps8UrjASLn418ylkN37lfQ7Gne9L3Ces3j /cTMxpJQuGduvlnLLyhbuDW/cJNMzwM= ARC-Authentication-Results: i=1; imf05.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=Buavq7U5; spf=pass (imf05.hostedemail.com: domain of hezhongkun.hzk@bytedance.com designates 209.85.214.176 as permitted sender) smtp.mailfrom=hezhongkun.hzk@bytedance.com; dmarc=pass (policy=quarantine) header.from=bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744182412; a=rsa-sha256; cv=none; b=t8lvhEpm7OQ0sl9trMaWfyiNYIu9LmedjkYt++41oNXBC/dq8U3bu2wm1fKJFHtmPMl06j XNjDFLqPUukhFhKZMbzVFvMUpzLY1SoyjRQ6TtAR+afQkFPzJOGx2olwwERNhmIizidH1p LugpEoh0zEx3CijZwHjZmewrlnuG7QI= Received: by mail-pl1-f176.google.com with SMTP id d9443c01a7336-22548a28d0cso91224645ad.3 for ; Wed, 09 Apr 2025 00:06:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1744182409; x=1744787209; 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=THZYEJIp0OpQWutbU1ZY1t2ANQ29WhjxUWkhn4aAs5o=; b=Buavq7U5UYWESxV0Uu6nvnrINM+FsGt8AqgkEqYagGSJy4EN+ry/BO1216Z1mZT7jD /Aue5W+spRN7Hrq4BR4wBHeeI+XyB8HapVE73J4OJzKDumrTafal950y5TQiUZyRDPkR MmA7WAnVD8pZSfsUm4IPzCr8xcjJeqyuLNCkzlxd3bIy95SxBz/lEG+JSYfDAPksb1j/ ip9P204rPVQGkfzrPdwwlupwGQKS7AYVJ/Q68xO8s/MOhsXHYXEv4dB0AqY3gkSMHjmY wOGWmAo29OD//RDunFgsX+1YFEbT94/H3qUJ1QmKbb0MCBqAzfNfwOMRsZegVRpHe/mh xLFA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744182409; x=1744787209; 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=THZYEJIp0OpQWutbU1ZY1t2ANQ29WhjxUWkhn4aAs5o=; b=WN6/Av+rVwxA5SiH1dDTPYHm1/+KGW4I9sNPHFAytyjRAAKxcew8crT0Sy83A/NRl9 YtKlz0ZnQdi4fy0t2aPRui5G9TfD0kbgUKhqlLbn7X1lJE+NGJz3Xqa1o0CeXBuoIyS1 HekWdAVk1SkD0czVMWfOmYWUf/wX2JgcqMgRXdHVKxHMAYl1b1wRNjws+yCkIiScfFvW rQpqaslFdqQxPiKpBcvgVwM3oX9HqH2JAdjLIhGOQbQGAAko5/4Fw9D06AaKyl9g9r9b y3Ggmpa7j2DcaeW8WBFCo/dr2sk6ltQhiZk8M1UDPjL09woYOgXldMFKzw8OVcmC9+f6 rBBw== X-Forwarded-Encrypted: i=1; AJvYcCV22qEQedy+cRHHeTDSumgWx8GG/Wpg1ie8MXP4Dwvz0sQO0Bh5SmvZsEeDhq51Y1fHdwg3H78EUw==@kvack.org X-Gm-Message-State: AOJu0Yx/lZG7VyEnU8sv94VhY4vvpkDZV0wQn5ffycMDBULOk+5UNb4G zb21yS7pm6N5h74HRlDSvAAruJ/bv/WO33xObMnW72iBaI+oSxHn2bPk8A+kbkQ= X-Gm-Gg: ASbGnct6wLls0SKDCvYllzNX4kbuZgGKJGb18j22wLj3Hh3OKOJxULY5T7cSsoW6fX/ kNWT1r7iQlW+qi3anFeK8KlBgST7zQSIfipcwLiE5zZwePJyC64j2FSJvVX5hzA8DHDlWgtthDo KGAfrRwfdDRwLb+pU8SBh/W24wIVlVaLBs9gKzw+0i6pCIk+4yju1YRb1eEajxFJlhRwfykrqEP AztH2FJF4U37UyB9/Fc8OxClDVHOI58vn367ww/SEqJUvO4mSjJ8AVCvDkQPEbSvUePgqyrt+OB zI9K/SLxh39sLo1hfB5BtkujCcpM7P/fQBEHIQbmqG7T4AQYuV0dmUI6ko85YcJejA== X-Google-Smtp-Source: AGHT+IEcMLhqJwNuZeTBrvnjdTznoQyj3Rul1pM8+mw8l/1evuhlt9DvAXXnUDrqBMc7KQTj0Vx0XA== X-Received: by 2002:a17:903:1a23:b0:223:26da:4b6f with SMTP id d9443c01a7336-22ac298f941mr33009615ad.14.1744182409178; Wed, 09 Apr 2025 00:06:49 -0700 (PDT) Received: from n37-069-081.byted.org ([115.190.40.13]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-73bb1d44800sm565754b3a.37.2025.04.09.00.06.45 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 09 Apr 2025 00:06:48 -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 V3 0/3] add max arg to swappiness in memory.reclaim and lru_gen Date: Wed, 9 Apr 2025 15:06:17 +0800 Message-Id: X-Mailer: git-send-email 2.39.5 MIME-Version: 1.0 X-Rspamd-Queue-Id: 9327010000A X-Rspam-User: X-Rspamd-Server: rspam02 X-Stat-Signature: 36yxx6q4ddeyy9nnyy1di4poe9ipcgjp X-HE-Tag: 1744182410-391564 X-HE-Meta: U2FsdGVkX1+MXk6LzqRVs7nci7GeFy9DNLV5NpDfFrwJNKpmGTZ3DFCB086DayVBWUhOOsSnWQD8BGaval3unp3bAtsHeYCKVFSD5UHW6+n6fDMIuA2+7MADgonbLkvVXqzGBgzPjwkfU1HsGBBBVkRxFBRasQzrLoTYB7pSP8v16/L8R9z49J76O/iWUVxnbPd55mJMMB1iLqidlJEl4xuyKgZTnEd1OkK/Zr4toII8Wog0GERGjoJHJiZe0slyvRGyDYOFIF7F55B40aBvoMD8wBTfV+weQoI8DCpjmKq/H4eug8TniiBDATet3UvnJvxXB6hKZ1PflD7tqCnmb48gMmn4uu3B3f5S12iuxMO5yb8isvbpSVGqW1wobkexge9WiRw84aiZ405zc0kN6UfAMPqBUFnqM8iz6vQ4awRjDk4XkADlO5FJUH13n2DaSkISIVRy2pILAFQuhcfYyJpt8AN9UzBEnnHgQiGVsvB9jDYsoQs4EWiIRnsL2OrkIDI7F+lIKypGXZpQsTq1tU8wvYnsqyxiRvIlCkWl7ZcRuu4Gw8vQNcLMi71IDQZLCZK9Elv+OWlSdjemR3U33JFbzzScygv0RaqduGqxSwWSmt9PqgFrAek/PLH9C6o5Km8KjAl3j4gbL9DEHAoseFF4PG7L0QGygXJapjWBtsUkZYk8pCLRIaqAky2BMOsfg53rGy6jJdIDqPLdo6wuAgF+kIf0yFGc/nybzeqgn6JuMofpiLCspUZl4XhuIzlDNw2Ka2Zxj8k7cD9Vuoh4sc4BYYJN9URid0qkhZZqn50/8l5nro73jWLQO9FV9uXL7nUk/LlkP28xr0B6LqeHHDff/asj+m/POTnp6dAm5Va26qnSYls6+q/Ojpkc7+dqQl+u2EevQvsyrTzBB8XoRCHVC3fs6kCmHs4mTAin7ZWFn3XPN94GwEk01aS9QFeVVTXfXrnLxBPvStJk9gs iuXfwOmc PkOi1HRjzMaikCqnvCD/FNjyIA6cFIbCVW27gboIimtoLemBeDoapvJV6+wO/s5yo/zcL4h+rkiEMRWZ/KA0dg3rrvb+0r31A6+hO2Bh0FRsvR9lEEND8eMYUPbRffEzrJuFvtP6kFthdPPFUf7ZMgVsLiyZN7VJazsjKwYcBQJqm+HQyA+Tr37dnjUavBYrrR8ZUFHSN06E5D+dtWFZ/BQCserUQC5rmHfbWud3f55AVWAXb6V/DV2O9jjzicT/g6C26HI3d+1JsvYgQQAtQnY8CD52/ee8I+gAPzyWowWI+17wyBaAyvIFqEXERQnRhuI5a4WvxOD+MsCcUDlPdIemxdlMiWMeGBNTMZnbBZp8Ao6doG2IZStrIvlqURF9CEC9Bh6pGGbo2eJF8Ely9LX812qpOjEvlEsb47LqovzZ+YDV8qYdrQPy5DA== 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 max arg to lru_gen for proactie 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, and explicitly uses the SWAPPINESS_ANON_ONLY macro in the code to denote this logic. Patch 3 add more comments for cache_trim_mode from Johannes Weiner in [1]. [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/ 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 (3): mm: add swappiness=max arg to memory.reclaim for only anon reclaim mm: add max swappiness arg to lru_gen for anonymous memory only mm: vmscan: add more comments about cache_trim_mode 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 | 36 ++++++++++++++----- 5 files changed, 43 insertions(+), 10 deletions(-)