[PATCH v3 0/2] mm/mglru: fix ineffective memory protection for non-kswapd reclaim

From: Ridong Chen

Date: Wed Sep 02 2026 - 23:26:55 EST


From: Ridong Chen <chenridong@xxxxxxxxxx>

For MGLRU, memory.min/low is not honored during non-kswapd global
reclaim (global direct reclaim and root-level memory.reclaim), because
these paths shrink memcgs using stale effective protection (emin/elow).

Patch 2 is the actual fix. Patch 1 is a prerequisite: an integer overflow
in effective_protection(), spotted by the sashiko review tool, which
patch 2's new caller would also be exposed to.

---

v3:
- Per Barry Song's review comments

v2:
- Fix an issue caused by non-atomic read races in patch 1 [1]

[1] https://sashiko.dev/#/patchset/20260828092432.1257917-1-ridong.chen@xxxxxxxxx?part=1

Ridong Chen (2):
mm/page_counter: avoid integer overflow in effective_protection()
mm/mglru: fix ineffective memory protection for non-kswapd reclaim

include/linux/memcontrol.h | 10 +++++++++
mm/memcontrol.c | 45 ++++++++++++++++++++++++++++++++++++++
mm/page_counter.c | 19 +++++++++++-----
mm/vmscan.c | 8 ++++++-
4 files changed, 75 insertions(+), 7 deletions(-)


base-commit: 32b6ef9a5d0eca44f9cd91f52f4faa89f145a0de
--
2.34.1