Re: [PATCH 4/4] mm: shrinker: make shrinker not depend on memcg kmem

From: Yang Shi
Date: Wed Jun 12 2019 - 13:25:06 EST




On 6/12/19 3:11 AM, Kirill A. Shutemov wrote:
On Tue, Jun 11, 2019 at 10:07:54PM -0700, Yang Shi wrote:

On 6/11/19 7:52 PM, Kirill A. Shutemov wrote:
On Fri, Jun 07, 2019 at 02:07:39PM +0800, Yang Shi wrote:
Currently shrinker is just allocated and can work when memcg kmem is
enabled. But, THP deferred split shrinker is not slab shrinker, it
doesn't make too much sense to have such shrinker depend on memcg kmem.
It should be able to reclaim THP even though memcg kmem is disabled.

Introduce a new shrinker flag, SHRINKER_NONSLAB, for non-slab shrinker,
i.e. THP deferred split shrinker. When memcg kmem is disabled, just
such shrinkers can be called in shrinking memcg slab.
Looks like it breaks bisectability. It has to be done before makeing
shrinker memcg-aware, hasn't it?
No, it doesn't break bisectability. But, THP shrinker just can be called
with kmem charge enabled without this patch.
So, if kmem is disabled, it will not be called, right? Then it is
regression in my opinion. This patch has to go in before 2/4.

I don't think this is a regression. "regression" should mean something used to work, but it is broken now. Actually, deferred split shrinker never works with memcg.

Anyway, either before 2/4 or after 2/4 looks ok.