Re: [PATCH v4 01/13] mm: Assign id to every memcg-aware shrinker

From: Andrew Morton
Date: Wed May 09 2018 - 18:55:21 EST


On Wed, 09 May 2018 14:56:55 +0300 Kirill Tkhai <ktkhai@xxxxxxxxxxxxx> wrote:

> The patch introduces shrinker::id number, which is used to enumerate
> memcg-aware shrinkers. The number start from 0, and the code tries
> to maintain it as small as possible.
>
> This will be used as to represent a memcg-aware shrinkers in memcg
> shrinkers map.
>
> ...
>
> --- a/fs/super.c
> +++ b/fs/super.c
> @@ -248,6 +248,9 @@ static struct super_block *alloc_super(struct file_system_type *type, int flags,
> s->s_time_gran = 1000000000;
> s->cleancache_poolid = CLEANCACHE_NO_POOL;
>
> +#if defined(CONFIG_MEMCG) && !defined(CONFIG_SLOB)

It would be more conventional to do this logic in Kconfig - define a
new MEMCG_SHRINKER which equals MEMCG && !SLOB.

This ifdef occurs a distressing number of times in the patchset :( I
wonder if there's something we can do about that.

Also, why doesn't it work with slob? Please describe the issue in the
changelogs somewhere.

It's a pretty big patchset. I *could* merge it up in the hope that
someone is planning do do a review soon. But is there such a person?