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 E5F7DC3601E for ; Thu, 10 Apr 2025 03:48:57 +0000 (UTC) Received: by kanga.kvack.org (Postfix) id 37D656B02C5; Wed, 9 Apr 2025 23:48:56 -0400 (EDT) Received: by kanga.kvack.org (Postfix, from userid 40) id 32C126B02C6; Wed, 9 Apr 2025 23:48:56 -0400 (EDT) X-Delivered-To: int-list-linux-mm@kvack.org Received: by kanga.kvack.org (Postfix, from userid 63042) id 1F3896B02C7; Wed, 9 Apr 2025 23:48:56 -0400 (EDT) X-Delivered-To: linux-mm@kvack.org Received: from relay.hostedemail.com (smtprelay0016.hostedemail.com [216.40.44.16]) by kanga.kvack.org (Postfix) with ESMTP id 01BFE6B02C5 for ; Wed, 9 Apr 2025 23:48:55 -0400 (EDT) Received: from smtpin26.hostedemail.com (a10.router.float.18 [10.200.18.1]) by unirelay04.hostedemail.com (Postfix) with ESMTP id 0CD6E1A1BF6 for ; Thu, 10 Apr 2025 03:48:56 +0000 (UTC) X-FDA: 83316753072.26.5095425 Received: from mail-lf1-f50.google.com (mail-lf1-f50.google.com [209.85.167.50]) by imf02.hostedemail.com (Postfix) with ESMTP id 2E34780005 for ; Thu, 10 Apr 2025 03:48:52 +0000 (UTC) Authentication-Results: imf02.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b="lwG/69vT"; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf02.hostedemail.com: domain of hezhongkun.hzk@bytedance.com designates 209.85.167.50 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=1744256934; 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:content-transfer-encoding: in-reply-to:in-reply-to:references:references:dkim-signature; bh=lFEobiF77Xtm1NLYLUKziWY3dV021WSRPxibCoOdOTA=; b=LhU/V0kXeoon5/Lw9H6av/auYjUF+pRUFzscxP0nWVala7VSONmv0JCqKy2p7vyafgxXy3 lH712V6oN+oi6rRRHub7H87PCWv6C9wHnZhdpIPEYmqc7wfimEB39xGq6nO1z9TMY4iOyy 63aaxd/EHLIFQ2hnQfUtAsN5Yf4jH5s= ARC-Authentication-Results: i=1; imf02.hostedemail.com; dkim=pass header.d=bytedance.com header.s=google header.b="lwG/69vT"; dmarc=pass (policy=quarantine) header.from=bytedance.com; spf=pass (imf02.hostedemail.com: domain of hezhongkun.hzk@bytedance.com designates 209.85.167.50 as permitted sender) smtp.mailfrom=hezhongkun.hzk@bytedance.com ARC-Seal: i=1; s=arc-20220608; d=hostedemail.com; t=1744256934; a=rsa-sha256; cv=none; b=6JsVn39hvaRUY6R38lGFW6UutIT5YFKC5B35lcm7pdN1JpEy/2y4ZN+nPoGKboQvuU9DFU HrV/AbWyacRCsxyutbgE0AQ/8S4TZ2NKFGUEL5FURFM8U7alb2kZnw+U2AGhahUfsn/tL4 plYq5hrhzebbe+C6jXV4TAEk0KoFR94= Received: by mail-lf1-f50.google.com with SMTP id 2adb3069b0e04-54b1095625dso401124e87.0 for ; Wed, 09 Apr 2025 20:48:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=bytedance.com; s=google; t=1744256931; x=1744861731; darn=kvack.org; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=lFEobiF77Xtm1NLYLUKziWY3dV021WSRPxibCoOdOTA=; b=lwG/69vTVzM1ehcNom1pzqwV1OFnHeDRcN/4KsdV94uX8G32C024P9M/mAje/u6l2q uklFcxHo6TAK+Lp4dBGnZwek+o9WgoV0Y//YT29V6uOXvtNDTsxZo9OQXvZYws1eOMZI DpE+DQP/WG76h7fm9NlaZUhZ4HVX1F9ERz6afpFeJdf/ataRyOjkO73Lzq4PHFb0fiNu 4UI1oNydoyOwVppRoLmIV1rxU8w9WOCC8Rzvr6yyZJhAqyCIAzVHNZRO+zYDs2nZi2HQ QosmJEcsVCH0MRsraNYj3SrK5FOND0zlH8ulJVWGtiXokbucofZEdasgK9H2aT64VVyZ 71fg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1744256931; x=1744861731; h=content-transfer-encoding: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=lFEobiF77Xtm1NLYLUKziWY3dV021WSRPxibCoOdOTA=; b=Lgn2bwFlCGOf2t1oLQKa+C0vcz6PvPxaDd1AxvpdVzyoxoWEMO5pNEUPYv2Mzyu8ku EKRFQneCp+3St/hRl1D9mtOkeSHalMAK5mcal9sei3xuuLsaxetH2Lj/vGT3TP7xkdfX fSsEaJo6eytNVsWHISRdYg/1PAEMXpJTOfrMvSWqTC3DJSFy+dZqSrLcaf3U6NAmoHW6 TnnCfKZvNUpSFWiGJ1KwQmBA+rF7NQuKsJNRT218RABi4wgZEhqD/fqeBLY6GJVppUi1 WuZlVS7eebPb42CfTrpwJrmXJWcrsB69g+1XWPWiDEC9gXqSSwTEYFpXjiWb/OOmSeHk A1hQ== X-Forwarded-Encrypted: i=1; AJvYcCVM3wi3MS1z+gsyvM0pudRfKA1arGPXLTyUb/aX0IYNWPRn+shYkmrTVWe2dCg0cnL3XVW1MKGrsw==@kvack.org X-Gm-Message-State: AOJu0YyYI++0JAwa4KsoEX1G0CkkrCv0YB56PDw+Z9ko73m1QNqqFSV9 nx3Bke1NWPyANZQtVl+USmSz5sXyMQN/Go+MfH2EcVxv1xwJKF8UB/RMo7G0Zhv4B+LiEPNCNbf IXhVKBbqPazLwBDN3pLJHIzOdHPqceYRXxzMKcg== X-Gm-Gg: ASbGncsCdG2Du069Yw3EyOvquryD3186UeoDK3ES0i5UvNtnezWJAHEU9eG89lScg24 Dc2J3c1wrSJWVA/uexM0MOj3lLxK2GApkGinorcp2zzWoLdU/6katirU0K0XF4n0V85pxZh8Z8I e2dKMMJuNS84PDAoYMK9nQmzmEjalwBQs2VTg= X-Google-Smtp-Source: AGHT+IHCd0S/mKr+zDeztx1oYbkZsJ8x25MQK6iXPpSdtWnmpNJ+LDqPjn53QebjIJrvsB8DTFlH6p+yOIdlj2BpZ88= X-Received: by 2002:a05:6512:1325:b0:545:441:52d2 with SMTP id 2adb3069b0e04-54caf5b03e5mr282819e87.23.1744256931011; Wed, 09 Apr 2025 20:48:51 -0700 (PDT) MIME-Version: 1.0 References: <720e8e2c5b84efed5cf9980567794e7c799d179a.1744169302.git.hezhongkun.hzk@bytedance.com> <20250409190933.3f08db6d6c1f13bc14a170f9@linux-foundation.org> In-Reply-To: <20250409190933.3f08db6d6c1f13bc14a170f9@linux-foundation.org> From: Zhongkun He Date: Thu, 10 Apr 2025 11:48:14 +0800 X-Gm-Features: ATxdqUHXv7zHPa7GukApUvtnAIBtUVDgzl9cvrMAx0TDyFwNsSc2s0IF1qkRrso Message-ID: Subject: Re: [External] Re: [PATCH V3 1/3] mm: add swappiness=max arg to memory.reclaim for only anon reclaim To: Andrew Morton 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 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Rspamd-Server: rspam11 X-Rspamd-Queue-Id: 2E34780005 X-Stat-Signature: jtpr4bnn3eky35yk3ha9k9iefys8bwgq X-Rspam-User: X-HE-Tag: 1744256932-409283 X-HE-Meta: U2FsdGVkX19tbHTjlKnMcOnpU/NwdFEpn6JJFDEIUl07ccdGLgp9XQP488GKZ3vrKwyAJUi3Li54aKja3Nz0MgfL1ErEawcuMntngA9flLJkYOpyN+JRmWSalJumOW5MpD1VSrLlEZzgdqUN7+aaFX0vLJl8fZnwE62id4blcmk1lqBwzTaR7UtuesoRgofdNdW2NumepNzAVTXvMnaZKBor3cJk3zV6l1l0c8DsF7lqwv7BziOVXjxwK1ke6HcAzWE/idqgv/U8K+q8LDrv8MeeGrBUrhNfPVTvofMN5RVFL6eI0IDIQWlfwS4CzALWkPvLtCHOUJJvq+5zuGKjJgsZRP5xV/r/u/0/ROrlaJERVeJaZVflxOuumwz6N9YpqUsQW8TqWTRfPajifBdya5JlHZB6YCE1eaWK1czTv/WKUMxa+951x+24FJLwvP6c2SsosGQaDhkOHCiWMbg5yA70MsAz34ypL+9rMvu9/HR2BpIEwkF/HqzRBXmeaxaqgqrqSVwu4CqLycM7A7Lhl52QdQT/HdrkQinpXkYqVGrszI4wza17Y6c+W80oCKXGre/kHv3HajkghuXogcHdU2tv8woweje9Hm4m3vlwzZXcJMcDXdbX6djpCLUqqjzMUUHNYcLxBH81YYou7/9u9SI/D8BSrjkWE1EZwdr7cfGG7njpMLMZPcFrAaQMcfn5mvf6tVshERKaygTcoqo088BUey2pCjPqWZndarWeMrhTcRGT5MGj+/PssebCtseQmYEmV1SlZiRKR3iIuD1zZRZK8Lu2ZUeAKh6oS5DNgsqOKMVYVCXn7UdsbT5ZWsdZUYrhriZH9M+j4xEKQtfhoIEIrMIiacM6mmlOUOD+Tp0IPYAvkR639liMN/aviyi0JrLXSeZNrfz3zF64psHc1L1dKGIQj3Xpt70Rwqa0V5ebuWcgSYIKtXk3FB3PHX7iBRFBp3hDkWtDjXQTaIt 7m6XCBc7 tOcLAysUiVzwNASiKQZ1QNunTZDHAdbtryUGNuQgyF8iYig5XVeTZ1Ny+v3ZXAXnIMMURV3FNuE6T9KZkCHUVNbFpahiqGTmQ3RTw1kWbLblcgXMazQtwIk8weJAc7q7qEbz90oVzyD6SJbDDl2vwVg85Qw2a8U5IJkM4iwVt32iCFeqfOlIRodFimzox9b4qfqoLCOBSNCa7pNuaN1WvHwQGen0WcYeAkiVnxrMFtsQV3AEiFWbI3Z9/JOwvgQOPNeB0ceqvgj2TJK81k0aUliMhBiW6HQOpOlaNtfGNQvzln9YRb1FbjkklHH8DwkAL0RARYWFVwtDkK1VVwsYwNYQdjg== 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, Apr 10, 2025 at 10:09=E2=80=AFAM Andrew Morton wrote: > > On Wed, 9 Apr 2025 15:06:18 +0800 Zhongkun He wrote: > > > With this patch 'commit <68cd9050d871> ("mm: add swappiness=3D arg to > > memory.reclaim")', we can submit an additional swappiness=3D argum= ent > > 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. > > > > However,we have also encountered a new issue: when swappiness is set to > > the MAX_SWAPPINESS, it may still only reclaim file folios. > > > > So, we hope to add a new arg 'swappiness=3Dmax' in memory.reclaim where > > proactive memory reclaim only reclaims from anonymous folios when > > swappiness is set to max. The swappiness semantics from a user > > perspective remain unchanged. > > > > For example, something like this: > > > > echo "2M swappiness=3Dmax" > /sys/fs/cgroup/memory.reclaim > > > > will perform reclaim on the rootcg with a swappiness setting of 'max' (= a > > new mode) regardless of the file folios. Users have a more comprehensiv= e > > view of the application's memory distribution because there are many > > metrics available. For example, if we find that a certain cgroup has a > > large number of inactive anon folios, we can reclaim only those and ski= p > > file folios, because with the zram/zswap, the IO tradeoff that > > cache_trim_mode or other file first logic is making doesn't hold - > > file refaults will cause IO, whereas anon decompression will not. > > > > With this patch, the swappiness argument of memory.reclaim has a new > > mode 'max', means reclaiming just from anonymous folios both in traditi= onal > > LRU and MGLRU. > > > > ... > > > > --- a/Documentation/admin-guide/cgroup-v2.rst > > +++ b/Documentation/admin-guide/cgroup-v2.rst > > @@ -1348,6 +1348,9 @@ The following nested keys are defined. > > same semantics as vm.swappiness applied to memcg reclaim with > > all the existing limitations and potential future extensions. > > > > + The valid range for swappiness is [0-200, max], setting > > + swappiness=3Dmax exclusively reclaims anonymous memory. > > Being able to assign either a number or a string feels a bit weird. > Usually we use something like "-1" for a hack like this. eg, > NUMA_NO_NODE. > > Perhaps we just shouldn't overload swappiness like this. Add a new > tunable (swappiness_mode?) which can override the swappiness setting. > > I guess it doesn't matter much. We're used to adding messy interfaces ;) > Hi Andrew, thanks for your review. In the initial patch, I used 200 (the maximum value of swappiness) to repre= sent the semantics of reclaiming only from anonymous pages. However, someone pointed out that the current usage needs some fine-tuning. Later discussion= s suggested using max(swappiness=3D201) to represent this specific semantic explicitly in the code. It was then discovered that MGLRU already includes this logic(= 201), so it's only necessary to make the intention of the code clearer. So we can add the max to memory.reclaim and lru_gen. More info please see: https://lore.kernel.org/all/Z9Rs8ZtgkupXpFYn@google.com/ >