[PATCH 3/3] mm/memcg: add next_mz back if not reclaimed yet

Wei Yang
2022-03-08T01:22:02Z

next_mz is removed from rb_tree, let's add it back if no reclaim has
been tried.

Signed-off-by: Wei Yang <richard.weiyang@gmail.com>
---
mm/memcontrol.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index 344a7e891bc5..e803ff02aae2 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -3493,8 +3493,13 @@ unsigned long mem_cgroup_soft_limit_reclaim(pg_data_t *pgdat, int order,
loop > MEM_CGROUP_MAX_SOFT_LIMIT_RECLAIM_LOOPS))
break;
} while (!nr_reclaimed);
- if (next_mz)
+ if (next_mz) {
+ spin_lock_irq(&mctz->lock);
+ excess = soft_limit_excess(next_mz->memcg);
+ __mem_cgroup_insert_exceeded(next_mz, mctz, excess);
+ spin_unlock_irq(&mctz->lock);
css_put(&next_mz->memcg->css);
+ }
return nr_reclaimed;
}

--
2.33.1