* Re: [PATCH 1/3] mm/vmscan: fix anon-only reclaim evicting file pages when swappiness=max [not found] ` <20260717113300.214717-2-ridong.chen@linux.dev> @ 2026-07-17 16:37 ` Shakeel Butt 0 siblings, 0 replies; 4+ messages in thread From: Shakeel Butt @ 2026-07-17 16:37 UTC (permalink / raw) To: Ridong Cc: Andrew Morton, Johannes Weiner, Kairui Song, Qi Zheng, Barry Song, Axel Rasmussen, Yuanchu Xie, Wei Xu, David Hildenbrand, Michal Hocko, Lorenzo Stoakes, Zhongkun He, Muchun Song, Davidlohr Bueso, Roman Gushchin, linux-mm, linux-kernel, Ridong Chen On Fri, Jul 17, 2026 at 07:32:58PM +0800, Ridong wrote: > From: Ridong Chen <chenridong@xiaomi.com> > > As Qi mentioned [1], when swappiness=max (SWAPPINESS_ANON_ONLY) is set, > the reclaim logic is expected to reclaim anonymous pages exclusively. > However, due to the current ordering of checks in get_scan_count(), > file pages may still be evicted if can_reclaim_anon_pages() returns > false, which contradicts the semantics of SWAPPINESS_ANON_ONLY. > > Reproducer in a cgroup holding 64M of file cache, with no swap configured: > > Before (file cache is wrongly evicted): > # cat memory.stat > anon 196608 > file 67178496 > pgscan_proactive 0 > # echo "64M swappiness=max" > memory.reclaim > # cat memory.stat > anon 208896 > file 4096 <- page cache evicted > pgsteal_proactive 16400 > pgscan_proactive 16400 > > After (file cache is left intact): > # cat memory.stat > anon 200704 > file 67178496 > pgscan_proactive 0 > # echo "64M swappiness=max" > memory.reclaim > -bash: echo: write error: Resource temporarily unavailable > # cat memory.stat > anon 208896 > file 67178496 <- page cache untouched > pgsteal_proactive 0 > pgscan_proactive 0 > > Fix this by bailing out early when SWAPPINESS_ANON_ONLY is set and no > anonymous pages are reclaimable, before falling back to file reclaim. > > [1] https://lore.kernel.org/cgroups/7ddf3eee-5fe2-45f7-8614-c8936a039e04@linux.dev/ > > Fixes: 68a1436bde00 ("mm: add swappiness=max arg to memory.reclaim for only anon reclaim") > Suggested-by: Qi Zheng <qi.zheng@linux.dev> > Signed-off-by: Ridong Chen <chenridong@xiaomi.com> Acked-by: Shakeel Butt <shakeel.butt@linux.dev> ^ permalink raw reply [flat|nested] 4+ messages in thread
[parent not found: <20260717113300.214717-3-ridong.chen@linux.dev>]
* Re: [PATCH 2/3] mm: vmscan: propagate real error code from per-node proactive reclaim [not found] ` <20260717113300.214717-3-ridong.chen@linux.dev> @ 2026-07-17 16:38 ` Shakeel Butt 0 siblings, 0 replies; 4+ messages in thread From: Shakeel Butt @ 2026-07-17 16:38 UTC (permalink / raw) To: Ridong Cc: Andrew Morton, Johannes Weiner, Kairui Song, Qi Zheng, Barry Song, Axel Rasmussen, Yuanchu Xie, Wei Xu, David Hildenbrand, Michal Hocko, Lorenzo Stoakes, Zhongkun He, Muchun Song, Davidlohr Bueso, Roman Gushchin, linux-mm, linux-kernel, Ridong Chen On Fri, Jul 17, 2026 at 07:32:59PM +0800, Ridong wrote: > From: Ridong Chen <chenridong@xiaomi.com> > > It has been observed that per-node proactive reclaim always returns > -EAGAIN when any error occurs. As discussed in the mailing list [1], > the interface should distinguish between cases where no reclaimable > memory is left and where another entity is concurrently using the > same interface. Propagate the real error code, consistent with how > memcg proactive reclaim handles errors. > > [1] https://lore.kernel.org/all/20250717235604.2atyx2aobwowpge3@offworld/T/#m3514718be82a31b05726a49da9b61fbfc69a589e > > Fixes: b980077899ea ("mm: introduce per-node proactive reclaim interface") > Signed-off-by: Ridong Chen <chenridong@xiaomi.com> Acked-by: Shakeel Butt <shakeel.butt@linux.dev> ^ permalink raw reply [flat|nested] 4+ messages in thread
[parent not found: <20260717113300.214717-4-ridong.chen@linux.dev>]
* Re: [PATCH 3/3] mm: vmscan: drop unused gfp_mask parameter from __node_reclaim() [not found] ` <20260717113300.214717-4-ridong.chen@linux.dev> @ 2026-07-17 16:39 ` Shakeel Butt 0 siblings, 0 replies; 4+ messages in thread From: Shakeel Butt @ 2026-07-17 16:39 UTC (permalink / raw) To: Ridong Cc: Andrew Morton, Johannes Weiner, Kairui Song, Qi Zheng, Barry Song, Axel Rasmussen, Yuanchu Xie, Wei Xu, David Hildenbrand, Michal Hocko, Lorenzo Stoakes, Zhongkun He, Muchun Song, Davidlohr Bueso, Roman Gushchin, linux-mm, linux-kernel, Ridong Chen On Fri, Jul 17, 2026 at 07:33:00PM +0800, Ridong wrote: > From: Ridong Chen <chenridong@xiaomi.com> > > Commit 57972c78e678 ("mm/vmscan: make __node_reclaim() more generic") > moved the scan_control construction out to the callers and passed the > struct in by pointer. After that change every use of the gfp mask inside > __node_reclaim() goes through sc->gfp_mask, leaving the gfp_mask parameter > unused. Just remove the dead parameter and update the callers accordingly. > No functional change. > > Signed-off-by: Ridong Chen <chenridong@xiaomi.com> Acked-by: Shakeel Butt <shakeel.butt@linux.dev> ^ permalink raw reply [flat|nested] 4+ messages in thread
* Re: [PATCH 0/3] mm/vmscan: fix swappiness=max and clean up per-node proactive reclaim [not found] <20260717113300.214717-1-ridong.chen@linux.dev> ` (2 preceding siblings ...) [not found] ` <20260717113300.214717-4-ridong.chen@linux.dev> @ 2026-07-17 19:53 ` Andrew Morton 3 siblings, 0 replies; 4+ messages in thread From: Andrew Morton @ 2026-07-17 19:53 UTC (permalink / raw) To: Ridong Cc: Johannes Weiner, Kairui Song, Qi Zheng, Shakeel Butt, Barry Song, Axel Rasmussen, Yuanchu Xie, Wei Xu, David Hildenbrand, Michal Hocko, Lorenzo Stoakes, Zhongkun He, Muchun Song, Davidlohr Bueso, Roman Gushchin, linux-mm, linux-kernel, Ridong Chen On Fri, 17 Jul 2026 19:32:57 +0800 Ridong <ridong.chen@linux.dev> wrote: > From: Ridong Chen <chenridong@xiaomi.com> > > Two fixes and one cleanup. > > Patch 1 fixes "swappiness=max": the anon-only test in get_scan_count() > sat after the "cannot reclaim anon" check, so when no anon was > reclaimable the request fell back to SCAN_FILE and evicted page cache > instead. > > Patch 2 fixes reclaim_store() collapsing every error into -EAGAIN, so > callers can no longer tell an invalid argument from a busy interface; > propagate the real error code, matching the memcg path. > > Patch 3 drops the now-unused gfp_mask parameter from __node_reclaim(). Thanks. Sashiko want to know whether MGLRU should also be fixed: https://sashiko.dev/#/patchset/20260717113300.214717-1-ridong.chen@linux.dev ^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2026-07-17 19:53 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20260717113300.214717-1-ridong.chen@linux.dev>
[not found] ` <20260717113300.214717-2-ridong.chen@linux.dev>
2026-07-17 16:37 ` [PATCH 1/3] mm/vmscan: fix anon-only reclaim evicting file pages when swappiness=max Shakeel Butt
[not found] ` <20260717113300.214717-3-ridong.chen@linux.dev>
2026-07-17 16:38 ` [PATCH 2/3] mm: vmscan: propagate real error code from per-node proactive reclaim Shakeel Butt
[not found] ` <20260717113300.214717-4-ridong.chen@linux.dev>
2026-07-17 16:39 ` [PATCH 3/3] mm: vmscan: drop unused gfp_mask parameter from __node_reclaim() Shakeel Butt
2026-07-17 19:53 ` [PATCH 0/3] mm/vmscan: fix swappiness=max and clean up per-node proactive reclaim Andrew Morton
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox