mm-vmscan-fix-node-reclaim-ignoring-swappiness-parameter.patch removed from -mm tree
The quilt patch titled
Subject: mm: vmscan: fix node reclaim ignoring swappiness parameter
has been removed from the -mm tree. Its filename was
mm-vmscan-fix-node-reclaim-ignoring-swappiness-parameter.patch
This patch was dropped because it was merged into the mm-stable branch of git://git.kernel.org/pub/scm/linux/kernel/git/akpm/mm
------------------------------------------------------
From: Ridong Chen <[email protected]>
Subject: mm: vmscan: fix node reclaim ignoring swappiness parameter
Date: Thu, 23 Jul 2026 11:24:34 +0800
sc_swappiness() had two separate definitions depending on CONFIG_MEMCG. The !CONFIG_MEMCG variant simply returned vm_swappiness, ignoring the proactive_swappiness value passed through scan_control. This caused the swappiness parameter written to /sys/devices/system/node/nodeX/reclaim to have no effect when CONFIG_MEMCG is disabled.
Fix this by consolidating sc_swappiness() into a single definition that checks sc->proactive_swappiness first, then falls back to mem_cgroup_swappiness() which already handles both CONFIG_MEMCG and !CONFIG_MEMCG.
Before fix (swappiness=max ignored, mostly file pages reclaimed):
# cat /proc/sys/vm/swappiness
60
# cat /proc/vmstat | grep pgsteal
pgsteal_kswapd 0
pgsteal_direct 0
pgsteal_khugepaged 0
pgsteal_proactive 1840
pgsteal_anon 25
pgsteal_file 1815
# echo "64M swappiness=max" > /sys/devices/system/node/node0/reclaim
# cat /proc/vmstat | grep pgsteal
pgsteal_kswapd 0
pgsteal_direct 0
pgsteal_khugepaged 0
pgsteal_proactive 18013
pgsteal_anon 337
pgsteal_file 17676After fix (swappiness=max honored, anon pages reclaimed as expected):
# cat /proc/vmstat | grep pgsteal
pgsteal_kswapd 0
pgsteal_direct 0
pgsteal_khugepaged 0
pgsteal_proactive 0
pgsteal_anon 0
pgsteal_file 0
# echo "64M swappiness=max" > /sys/devices/system/node/node0/reclaim
# cat /proc/vmstat | grep pgsteal
pgsteal_kswapd 0
pgsteal_direct 0
pgsteal_khugepaged 0
pgsteal_proactive 16283
pgsteal_anon 16283
pgsteal_file 0---
mm/vmscan.c | 19 +++++++------------ 1 file changed, 7 insertions(+), 12 deletions(-)
mm/vmscan.c renamed from mm/vmscan.c~mm-vmscan-fix-node-reclaim-ignoring-swappiness-parameter +7 -12
@@ -199,6 +199,13 @@ struct scan_control {*/ int vm_swappiness =60 ; +static int sc_swappiness (struct scan_control *sc,struct mem_cgroup *memcg) +{ +if (sc->proactive && sc->proactive_swappiness) +return *sc->proactive_swappiness; +return mem_cgroup_swappiness (memcg); +} +#ifdef CONFIG_MEMCG /* Returns true for reclaim through cgroup limits or cgroup interfaces. */
@@ -239,13 +246,6 @@ static bool writeback_throttling_sane(st#endif return false; } - -static int sc_swappiness (struct scan_control *sc,struct mem_cgroup *memcg) -{ -if (sc->proactive && sc->proactive_swappiness) -return *sc->proactive_swappiness; -return mem_cgroup_swappiness (memcg); -}#else static bool cgroup_reclaim (struct scan_control *sc) {
@@ -261,11 +261,6 @@ static bool writeback_throttling_sane(st {return true; } - -static int sc_swappiness (struct scan_control *sc,struct mem_cgroup *memcg) -{ -return READ_ONCE (vm_swappiness); -}#endif static inline bool is_exec_file_folio(const struct folio *folio,
_
Patches currently in -mm which might be from [email protected] are