From: Ridong Chen <chenridong@xiaomi.com>
The per-node proactive reclaim interface
(/sys/devices/system/node/nodeX/reclaim) accepts a swappiness parameter,
but it is silently ignored when CONFIG_MEMCG is disabled. The root cause
is that sc_swappiness() has separate implementations for CONFIG_MEMCG and
!CONFIG_MEMCG, and the latter never checks proactive_swappiness.
Patch 1 moves mem_cgroup_swappiness() and vm_swappiness out of the public
include/linux/swap.h into the mm-private mm/swap.h, and makes the helper
handle both CONFIG_MEMCG and !CONFIG_MEMCG in a single inline function.
This is a prerequisite for unifying sc_swappiness().
Patch 2 consolidates sc_swappiness() into a single definition that works
regardless of CONFIG_MEMCG, fixing the node reclaim swappiness bug.
---
v2 -> v3:
- Simplify mem_cgroup_swappiness as suggested by Johannes.
- Rebase on the next-20260722
v1 -> v2:
- Move mem_cgroup_swappiness() and vm_swappiness to mm/swap.h instead of
include/linux/memcontrol.h. Suggested by Barry Song.
- Correct fix tag for patch 2.
v1: https://lore.kernel.org/all/20260711091157.306070-1-ridong.chen@linux.dev/
Ridong Chen (2):
memcg: move mem_cgroup_swappiness and vm_swappiness to mm/swap.h
mm: vmscan: fix node reclaim ignoring swappiness parameter
include/linux/memcontrol.h | 4 ++--
include/linux/swap.h | 19 -------------------
mm/memcontrol.c | 4 ++--
mm/swap.h | 13 +++++++++++++
mm/vmscan.c | 19 +++++++------------
5 files changed, 24 insertions(+), 35 deletions(-)
--
2.34.1