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

From: Ridong Chen

Date: Sun Sep 06 2026 - 23:01:37 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 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.

---

v4:
- Per Barry's and Johannes's review comments.

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 | 21 +++++++++++++-----
mm/vmscan.c | 8 ++++++-
4 files changed, 77 insertions(+), 7 deletions(-)

--
2.34.1