[PATCH v2 0/8] memcg: remove the v1 soft limit
From: Shakeel Butt
Date: Wed Sep 02 2026 - 14:06:09 EST
The v1 soft limit was deprecated in v6.12 by commit 569c4f62d84a ("memcg:
initiate deprecation of v1 soft limit") and nobody has reported depending
on it in the ~21 months since. memory.low and memory.min in v2 have
covered the same ground for far longer.
The knob has since been made inert by "memcg: make the v1 soft limit knob
inert", already queued in mm-hotfixes as a backportable fix for a syzbot
report [1]. Nothing can enter the soft limit rbtree anymore, so this
series just deletes the machinery that is now dead: the reclaim pass in
kswapd and direct reclaim, mem_cgroup_shrink_node() and its tracepoints,
the per-node rbtree, lru_gen_soft_reclaim() and the MEMCG_LRU_HEAD op, the
per-node tree fields, mem_cgroup->soft_limit, and finally the v1 event
ratelimiting which is now down to a single target.
memory.soft_limit_in_bytes itself is untouched: writes stay ignored and
reads keep returning the maximum value.
Changes since v1 [2]:
- Dropped "memcg: make the v1 soft limit knob inert" (1/9 in v1), which is
already queued in mm-hotfixes, making this an 8-patch series.
- Collected the acks and review tags. No code changes.
Sashiko's v1 review [3] asked whether the softlimit tracepoints,
lru_gen_soft_reclaim(), the per-node tree fields and the
MEM_CGROUP_TARGET_SOFTLIMIT ratelimiting could go too. They all can and
they all do, in patches 3/8, 5/8, 6/8 and 8/8 of this same series.
[1] https://lore.kernel.org/all/6a7a6929.b50370da.49fe0.005e.GAE@xxxxxxxxxx/
[2] https://lore.kernel.org/all/20260811203203.3456029-1-shakeel.butt@xxxxxxxxx/
[3] https://sashiko.dev/#/patchset/20260811203203.3456029-1-shakeel.butt@xxxxxxxxx
Shakeel Butt (8):
memcg: remove v1 soft limit reclaim
memcg: remove mem_cgroup_shrink_node()
memcg: remove the soft limit reclaim tracepoints
memcg: remove the soft limit rbtree
memcg: remove lru_gen_soft_reclaim()
memcg: remove the per-node soft limit tree fields
memcg: remove mem_cgroup->soft_limit
memcg: simplify v1 event ratelimiting
include/linux/memcontrol.h | 27 ---
include/linux/mmzone.h | 30 +--
include/trace/events/vmscan.h | 14 --
mm/internal.h | 4 -
mm/memcontrol-v1.c | 392 ++--------------------------------
mm/memcontrol-v1.h | 12 +-
mm/memcontrol.c | 7 +-
mm/vmscan.c | 96 +--------
8 files changed, 34 insertions(+), 548 deletions(-)
--
2.53.0-Meta