[PATCH v2 2/4] memcg: bail out memory.max when memcg is dying
From: Jiayuan Chen
Date: Mon Jun 29 2026 - 21:30:30 EST
From: Jiayuan Chen <jiayuan.chen@xxxxxxxxxx>
memory.max has the same high-latency reclaim loop as memory.high, and
may additionally invoke the OOM killer on a cgroup that is already going
away, further delaying its removal.
Mitigate this by bailing out of the loop once memcg_is_dying().
Reported-by: Zhou Yingfu <yingfu.zhou@xxxxxxxxxx>
Cc: Jiayuan Chen <jiayuan.chen@xxxxxxxxx>
Signed-off-by: Jiayuan Chen <jiayuan.chen@xxxxxxxxxx>
---
mm/memcontrol.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index eca9f6091980..ad5f6dfdc021 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -4848,6 +4848,9 @@ static ssize_t memory_max_write(struct kernfs_open_file *of,
if (signal_pending(current))
break;
+ if (memcg_is_dying(memcg))
+ break;
+
if (!drained) {
drain_all_stock(memcg);
drained = true;
--
2.43.0