On Fri, 12 Jul 2019 12:59:45 +0200 Arnd Bergmann <arnd@xxxxxxxx> wrote: > On Thu, Jul 11, 2019 at 2:41 AM Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote: > > > > > > From: Yang Shi <yang.shi@xxxxxxxxxxxxxxxxx> > > Subject: mm: shrinker: make shrinker not depend on memcg kmem > > > > 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. > > > > Today's linux-next again fails without CONFIG_MEMCG_KMEM: > > mm/vmscan.c:220:7: error: implicit declaration of function > 'memcg_expand_shrinker_maps' [-Werror,-Wimplicit-function-declaration] > if (memcg_expand_shrinker_maps(id)) { > ^ > mm/vmscan.c:608:56: error: no member named 'shrinker_map' in 'struct > mem_cgroup_per_node' > map = rcu_dereference_protected(memcg->nodeinfo[nid]->shrinker_map, > ~~~~~~~~~~~~~~~~~~~~ ^ > Thanks. With this and the mysterious list_del() corruption issue I think I'll drop the patchset.