All of lore.kernel.org
 help / color / mirror / Atom feed
From: Qi Zheng <qi.zheng@linux.dev>
To: Barry Song <baohua@kernel.org>, Ridong Chen <ridong.chen@linux.dev>
Cc: akpm@linux-foundation.org, hannes@cmpxchg.org, david@kernel.org,
	mhocko@kernel.org, shakeel.butt@linux.dev, ljs@kernel.org,
	kasong@tencent.com, axelrasmussen@google.com, yuanchu@google.com,
	weixugc@google.com, hezhongkun.hzk@bytedance.com,
	muchun.song@linux.dev, dave@stgolabs.net,
	roman.gushchin@linux.dev, linux-mm@kvack.org,
	linux-kernel@vger.kernel.org, Ridong Chen <chenridong@xiaomi.com>
Subject: Re: [PATCH v2 4/4] mm/mglru: fix anon-only reclaim evicting file pages when swappiness=max
Date: Mon, 20 Jul 2026 10:48:56 +0800	[thread overview]
Message-ID: <c9ad9052-4f9e-42a5-a6f6-17877aad18e4@linux.dev> (raw)
In-Reply-To: <CAGsJ_4zGRtDEGnQwmFqXrEcm93UrHaX8A_awJgu=b8ikceT8fA@mail.gmail.com>



On 7/18/26 9:43 PM, Barry Song wrote:
> On Sat, Jul 18, 2026 at 5:54 PM Ridong Chen <ridong.chen@linux.dev> wrote:
>>
>> From: Ridong Chen <chenridong@xiaomi.com>
>>
>> The previous patch fixes this issue for the traditional LRU, which also
>> exists in MGLRU [1]. Fix this by checking whether swappiness is
>> SWAPPINESS_ANON_ONLY in get_swappiness() first, and returning 0 from
>> get_nr_to_scan() when swappiness is SWAPPINESS_ANON_ONLY and anon pages
>> cannot be reclaimed, to avoid useless work.
> 
> Is this intended to avoid unnecessary work, or to prevent file folios
> from being reclaimed incorrectly?

Based on the test results below, it seems primarily intended to prevent
file pages from being mistakenly reclaimed. Also, bailing out early in
the SWAPPINESS_ANON_ONLY + !can_reclaim_anon_pages case is to avoid
unnecessary work.

Hi Ridong, perhaps the commit message could be clearer. ;)

> 
>>
>> The test result:
>> Before fix:
>>
>>    # cat /sys/kernel/mm/lru_gen/enabled
>>    0x0007
>>    # cat memory.stat
>>    anon 204800
>>    file 67108864
>>    ...
>>    pgsteal_proactive 0
>>    pgscan_proactive 0
>>
>>    # echo "64M swappiness=max" > memory.reclaim
>>    # cat memory.stat
>>    anon 208896
>>    file 0
>>    ...
>>    pgsteal_proactive 16384
>>    pgscan_proactive 16384
>>
>> After fix:
>>
>>    # cat memory.stat
>>    anon 188416
>>    file 67215360
>>    kernel 1970176
>>    ...
>>    pgsteal_proactive 0
>>    pgscan_proactive 0
>>
>>    # echo "64M swappiness=max" > memory.reclaim
>>    -bash: echo: write error: Resource temporarily unavailable
>>    # cat memory.stat
>>    anon 204800
>>    file 67215360
>>    ...
>>    pgsteal_proactive 0
>>    pgscan_proactive 0
>>
>> [1] https://sashiko.dev/#/patchset/20260717113300.214717-1-ridong.chen@linux.dev
>>
>> Fixes: 68a1436bde00 ("mm: add swappiness=max arg to memory.reclaim for only anon reclaim")
>> Signed-off-by: Ridong Chen <chenridong@xiaomi.com>
>> ---
>>   mm/vmscan.c | 14 +++++++++++++-
>>   1 file changed, 13 insertions(+), 1 deletion(-)
>>

Overall, this looks good to me.

Acked-by: Qi Zheng <qi.zheng@linux.dev>

Thanks,
Qi



  reply	other threads:[~2026-07-20  2:49 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-07-18  9:52 [PATCH v2 0/4] mm/vmscan: fix swappiness=max and clean up per-node proactive reclaim Ridong Chen
2026-07-18  9:52 ` [PATCH v2 1/4] mm/vmscan: fix anon-only reclaim evicting file pages when swappiness=max Ridong Chen
2026-07-18 13:34   ` Barry Song
2026-07-20  4:42     ` Ridong Chen
2026-07-21  7:45       ` Barry Song
2026-07-20  2:27   ` Qi Zheng
2026-07-18  9:52 ` [PATCH v2 2/4] mm: vmscan: propagate real error code from per-node proactive reclaim Ridong Chen
2026-07-20  2:32   ` Qi Zheng
2026-07-21  7:32   ` Barry Song
2026-07-18  9:52 ` [PATCH v2 3/4] mm: vmscan: drop unused gfp_mask parameter from __node_reclaim() Ridong Chen
2026-07-18 13:12   ` Barry Song
2026-07-20  2:34   ` Qi Zheng
2026-07-18  9:52 ` [PATCH v2 4/4] mm/mglru: fix anon-only reclaim evicting file pages when swappiness=max Ridong Chen
2026-07-18 13:43   ` Barry Song
2026-07-20  2:48     ` Qi Zheng [this message]
2026-07-20  6:03       ` Ridong Chen

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=c9ad9052-4f9e-42a5-a6f6-17877aad18e4@linux.dev \
    --to=qi.zheng@linux.dev \
    --cc=akpm@linux-foundation.org \
    --cc=axelrasmussen@google.com \
    --cc=baohua@kernel.org \
    --cc=chenridong@xiaomi.com \
    --cc=dave@stgolabs.net \
    --cc=david@kernel.org \
    --cc=hannes@cmpxchg.org \
    --cc=hezhongkun.hzk@bytedance.com \
    --cc=kasong@tencent.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=ljs@kernel.org \
    --cc=mhocko@kernel.org \
    --cc=muchun.song@linux.dev \
    --cc=ridong.chen@linux.dev \
    --cc=roman.gushchin@linux.dev \
    --cc=shakeel.butt@linux.dev \
    --cc=weixugc@google.com \
    --cc=yuanchu@google.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.