Re: [PATCH REBASED] mm, memcg: Make scan aggression always exclude protection

From: Chris Down
Date: Thu May 30 2019 - 16:55:53 EST


Michal Hocko writes:
On Wed 29-05-19 23:44:53, Chris Down wrote:
Michal Hocko writes:
> Maybe I am missing something so correct me if I am wrong but the new
> calculation actually means that we always allow to scan even min
> protected memcgs right?

We check if the memcg is min protected as a precondition for coming into
this function at all, so this generally isn't possible. See the
mem_cgroup_protected MEMCG_PROT_MIN check in shrink_node.

OK, that is the part I was missing, I got confused by checking the min
limit as well here. Thanks for the clarification. A comment would be
handy or do we really need to consider min at all?

You mean as part of the reclaim pressure calculation? Yeah, we still need it, because we might only set memory.min, but not set memory.low.

(Of course, it's possible we race with going within protection thresholds
again, but this patch doesn't make that any better or worse than the
previous situation.)

Yeah.

With the above clarified. The code the resulting code is much easier to
follow and the overal logic makes sense to me.

Acked-by: Michal Hocko <mhocko@xxxxxxxx>

Thanks for your thorough review! :-)