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

From: Yang Shi
Date: Tue Jun 25 2019 - 18:30:21 EST

On 6/25/19 3:14 PM, Andrew Morton wrote:
On Thu, 13 Jun 2019 05:56:48 +0800 Yang Shi <yang.shi@xxxxxxxxxxxxxxxxx> 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.
When memcg kmem is disabled, just such shrinkers can be called in
shrinking memcg slab.
This causes a couple of compile errors with an allnoconfig build.
Please fix that and test any other Kconfig combinations which might
trip things up.

I just tested !CONFIG_TRANSPARENT_HUGEPAGE, but I didn't test !CONFIG_MEMCG. It looks we need keep the code for !CONFIG_MEMCG, will post the corrected patches soon.