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

Michal Hocko
2022-03-08T08:18:04Z

On Tue 08-03-22 01:20:47, Wei Yang wrote:
> next_mz is removed from rb_tree, let's add it back if no reclaim has
> been tried.

Could you elaborate more why we need/want this?

> 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

--
Michal Hocko
SUSE Labs