From patchwork Wed Mar 12 09:43:37 2025 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Zhongkun He X-Patchwork-Id: 14013226 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 9AB19C28B2F for ; Wed, 12 Mar 2025 09:43:58 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 47D9C280002; Wed, 12 Mar 2025 05:43:57 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 42CDF280001; Wed, 12 Mar 2025 05:43:57 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 2F630280002; Wed, 12 Mar 2025 05:43:57 -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 11B61280001 for ; Wed, 12 Mar 2025 05:43:57 -0400 (EDT) Received: from smtpin25.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay02.hostedemail.com (Postfix) with ESMTP id 96184120D33 for ; Wed, 12 Mar 2025 09:43:57 +0000 (UTC) X-FDA: 83212412514.25.F151A77 Received: from mail-pl1-f177.google.com (mail-pl1-f177.google.com [209.85.214.177]) by imf18.hostedemail.com (Postfix) with ESMTP id 171311C000A for ; Wed, 12 Mar 2025 09:43:54 +0000 (UTC) Authentication-Results: imf18.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=jBhRZrbo; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf18.hostedemail.com: domain of hezhongkun.hzk@bytedance.com designates 209.85.214.177 as permitted sender) smtp.mailfrom=hezhongkun.hzk@bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1741772635; a=rsa-sha256; cv=none; b=ZDkJ7oxX3gDnHeO31lU4ybt++WZU9v8rLmXURmkvU7qtFlAbWDkfYCWtr+apzOE89p+MNI K6C7LNGyk3nTdC3yWhb0y4WUfcE9MnpcijaweyvkR/MdIQkYLYU5cn20I21Ivs+LUrUoXq lz5fMrAK7lTktu7dl2Q0YYUcN9Hg9D4= ARC-Authentication-Results: i=1; imf18.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b=jBhRZrbo; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf18.hostedemail.com: domain of hezhongkun.hzk@bytedance.com designates 209.85.214.177 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=1741772635; 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=TNU1uf3Xcdk2nIEqeH1aNvJIrk3sUB0/KSxqYR74jWA=; b=jSlQEJ3JamsVCXbeSIBhPZYM4svQ21/7kUlcstyfoC1KgMHTa+6MhcL2aWIC49YWGhZCf2 vt6JP96809TIFnWAi0e5PldPER+Pbl20LCkikejX43P+ILWOnFNQIx319RMmkr1DPPYvDb kRzk7rtjrxZbrsppRLmqN6nphCEqIZU= Received: by mail-pl1-f177.google.com with SMTP id d9443c01a7336-2254e0b4b79so39147755ad.2 for ; Wed, 12 Mar 2025 02:43:54 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1741772633; x=1742377433; 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=TNU1uf3Xcdk2nIEqeH1aNvJIrk3sUB0/KSxqYR74jWA=; b=jBhRZrboo5qKiS2miw1JWAKRZE22aebekmYoouMroLgMhQmGp790TDo6s+XdOW8zze GdorHMNol3l0zBH6hJeYIJily7hLZK/7QSxcmbLMKJzv5YIlK9uCrMPURvSVTBNmTPG3 /Utu7joAEdZKsQ8fNaQ6gfMbF8sBD/6PAeKQvBh4H1lftfPUd2XqS7AopMYCc0v0L+MP P7brpV0mrqkempTyvjLHA6lBC2mTQ573WXoMzY4a1lsUOdnfTCoQf2u78mBE72G2Kwhj GmlhshqV2LTUv3u0YlX4RnaC5aQMcNY/DJgCoM/oYf747E0TmIC3GHSy+vSp8s5Y3I0W PkaA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1741772633; x=1742377433; 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=TNU1uf3Xcdk2nIEqeH1aNvJIrk3sUB0/KSxqYR74jWA=; b=B9i7WNrfclxhcUDXJas1Gc8XytbOalA56YHzb/hXBbiztqxhM7/t8r1Cm9szno6ivd NdTZ7Cw+hJVR9mH8inqVGeXry8PbgAbHnVKT8PXs6guBbktyBATMjV5imaJCniyLMG3P BkFvWN9p/4BCvo/TTJ3OG3gqGCGFvBOs7bnbB4K3ouWwWok338WkZlc3pIsGypjqWuvN JDJ89RjGTuKiVEExlfc5zciWU5BP2tw3grWYDbVgzkxdMsEs+qIgJk+P8UJXBHeRqL/w suEVgVtocM+AHFLM51rFjnhNw3BHRAGkVLQVWT0ROw7hFco/VpWhZ1GVoOm6bodP8a3T rFDg== X-Forwarded-Encrypted: i=1; AJvYcCVD89w5Ef4JqOocW5Vm44oD7g7Xz1aJqayh1mCVJiYKOEt02fiSs7wGWyAsPKKjw1s2LU+2eGVVug==@kvack.org X-Gm-Message-State: AOJu0YzV04llBtOBCxYokF/twimmXPQpBGUxIfNue3J2hYImG8fM4WdY tXZRGw32ZbQ2PsfmaEV0voNWtVFakZAWmkHwPv8Nj1DrLCYDssXN/RwUrrL53uc= X-Gm-Gg: ASbGncscjSbjQHmJbZqLCYqi9LAIDtnb8w7dQx4SeasDDdZ9MQV28TrMV9kuDTV8fJp SE+bAtYerNcc8/JN23sfZAidzmj+0RH60G+V68bkRzEJVvyLdiORQbs9GMkS+4Ptsj3Q/GSPRJj uxqkw6s5MTTHkWftlRBYsh4fol+l861zsh//fxGGUdB5ePuwQMMz4xsWgDROsrLjvlpKuqyhRVz XWHYj4sVBDmZKDvlmSIpmIagx37trVG3dCnwhSJ8XgPaYN/BCsQ91KvSBo/+vOTvv62b39Bh8Lk +kYepCVL2DDUq4Dks7dHVqiu7BsXreP90T1SMtyOEoWmm3Krt8TQltm88LduLlL7ht9hUA== X-Google-Smtp-Source: AGHT+IG0oGR5a2aBQhaZI2O1e81Kva+mqhWN9j4apJrnH8Y8d5vEw+BhLhuII9ON1C9+OzxcWiN+bg== X-Received: by 2002:a17:902:e802:b0:223:26da:4b6f with SMTP id d9443c01a7336-22428895abfmr334184225ad.14.1741772633587; Wed, 12 Mar 2025 02:43:53 -0700 (PDT) Received: from n37-069-081.byted.org ([115.190.40.10]) by smtp.gmail.com with ESMTPSA id d2e1a72fcca58-7370073a7f6sm976453b3a.14.2025.03.12.02.43.49 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 12 Mar 2025 02:43:52 -0700 (PDT) From: Zhongkun He To: akpm@linux-foundation.org Cc: mhocko@suse.com, hannes@cmpxchg.org, muchun.song@linux.dev, linux-mm@kvack.org, linux-kernel@vger.kernel.org, Zhongkun He Subject: [PATCH] mm: vmscan: skip the file folios in proactive reclaim if swappiness is MAX Date: Wed, 12 Mar 2025 17:43:37 +0800 Message-Id: <20250312094337.2296278-1-hezhongkun.hzk@bytedance.com> X-Mailer: git-send-email 2.39.5 MIME-Version: 1.0 X-Stat-Signature: do6pc5q893r6g5mc94oeg44m4azoxi1n X-Rspamd-Server: rspam12 X-Rspamd-Queue-Id: 171311C000A X-Rspam-User: X-HE-Tag: 1741772634-732421 X-HE-Meta: U2FsdGVkX1/30VB6sBf9ISxIIf5MX/4FpW7mjfnTBNMBd1DK1jVUHKjQDsIAcuGbRz2UrtY/s9XSTVVNiDA8Ch7F/lcX5eTUm6YNtBVIHe+6ssq7Z+2IVLHPjgf84QTE6XSplDweS9W4vyTEMZOUWlpFTXN0vvDhGdYVlVBEOO88t5Ls98si6IApOgNMlf7BOCdx2vQ7boNlhrEx1VBCg/VeW31Rsdroc1dEX6pPUD/QQeFlhBZ4anF5ClVZbBVg2tM0V6lpoMJGHcZa6Dbj9GdyB4dbOegTvhwpdjSE3NMv94s+85za0GmLxUizDpkt339mYJ8lMboKQOY3kJi1ZlXmG0L20NmaIkC3Q/7S9txuHkGtgDBTII+kBeYgoGxIEytZXfpSpmNn6jmjVfzd4vYPnIq1c/j1h2BKofmAK2meoWx4iuBZkfcMwdqH2TNF5pBSsAmTSpWy+G5hbSMARPoh/9dSmBPXpdJv5kColSrjYeLhmVVVxkcc+bvkiSnyxHgE+VIezup2sXBkH/p777Wg1yrEUwJgWxcDQT/2ZguhGzgsJ1hw2NpI5w/C8en7rgPSvSECXE0uTpg0rGRGjlGUGk2hK4sXRSOL7IU5ywtYgUC1NgzSQRRcELSvMdUCQ71jLSgY3CCEmRg9cFlpI7UjT2hXQIe1j2aeFyTt6gO6uF4TsKdrcQ/oAJ2IjuuERMeuN+YjNFyGBHoJ47/zAUXpul4z6feaBgHfa7gZgOxxu7qim0zEckmJTgziXv4rbFDA4WVrYOPgjyjLIRkX1wTIrYn12YG2yH4wLiEOQ/4908vGjd+7T/mbc4uNtof4bhQg9Z1VqdTZ9N4IJfSJxg7aAxJw6tCkaav+cEA2cNP2Pk1NmHlTNzJzB9lFX97KfUK5puz/JotajK0ML8lVKifJvgZB7EoO6PvFbv/id4B56dR8SY2knMsGwoFOhArIR1lUMN9CLJg9gOENr8f pGBPbIBo FMN5fyHMtBIlAl28qw1+heSI7VFY6Z1qVgB7ON/I+naBB8XNWT6DzjIzIU+UUfVGqaIpuJ+f2JFrU1RdNeYMtXQTiLoQUCmH8a5bv1wEGRid5X84nAR8wjD77Cevug4X12WsQ+ojKpB89g9ylxGs41y/iKZRfgVJYUi8lyBZ7BgtWAAm3hjbrBcYiwbuLq4azN1YhA98NrXtBVp6eJzyunDSLLpIRKbY0o89AOH7z/NobCdFpmCP+qFjOpwO7TOALGEiLV3MTcyRLIb2JcaEoRgk1mJrrOOdbaumsWoAVLW3SjEXQDth3PXllqA== 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: With this 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 pages. However,we have also encountered a new issue: when swappiness is set to the MAX_SWAPPINESS, it may still only reclaim file folios. This is due to the knob of cache_trim_mode, which depends solely on the ratio of inactive folios, regardless of whether there are a large number of cold folios in anonymous folio list. So, we hope to add a new control logic where proactive memory reclaim only reclaims from anonymous folios when swappiness is set to MAX_SWAPPINESS. For example, something like this: echo "2M swappiness=200" > /sys/fs/cgroup/memory.reclaim will perform reclaim on the rootcg with a swappiness setting of 200 (max swappiness) regardless of the file folios. Users have a more comprehensive view of the application's memory distribution because there are many metrics available. With this patch, the swappiness argument of memory.reclaim has a more precise semantics: 0 means reclaiming only from file pages, while 200 means reclaiming just from anonymous pages. Signed-off-by: Zhongkun He --- mm/vmscan.c | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/mm/vmscan.c b/mm/vmscan.c index c767d71c43d7..f4312b41e0e0 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -2438,6 +2438,16 @@ static void get_scan_count(struct lruvec *lruvec, struct scan_control *sc, goto out; } + /* + * Do not bother scanning file folios if the memory reclaim + * invoked by userspace through memory.reclaim and the + * swappiness is MAX_SWAPPINESS. + */ + if (sc->proactive && (swappiness == MAX_SWAPPINESS)) { + scan_balance = SCAN_ANON; + goto out; + } + /* * Do not apply any pressure balancing cleverness when the * system is close to OOM, scan both anon and file equally