Message ID | 20190522091940.3615-1-jslaby@suse.cz (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [-resend,v2] memcg: make it work on sparse non-0-node systems | expand |
Hi, [This is an automated email] This commit has been processed because it contains a "Fixes:" tag, fixing commit: 60d3fd32a7a9d list_lru: introduce per-memcg lists. The bot has tested the following trees: v5.1.4, v5.0.18, v4.19.45, v4.14.121, v4.9.178, v4.4.180. v5.1.4: Build OK! v5.0.18: Build OK! v4.19.45: Build OK! v4.14.121: Failed to apply! Possible dependencies: 0200894d11551 ("new helper: destroy_unused_super()") 2b3648a6ff83b ("fs/super.c: refactor alloc_super()") 39887653aab4c ("mm/workingset.c: refactor workingset_init()") 8e04944f0ea8b ("mm,vmscan: Allow preallocating memory for register_shrinker().") c92e8e10cafea ("fs: propagate shrinker::id to list_lru") v4.9.178: Failed to apply! Possible dependencies: 0200894d11551 ("new helper: destroy_unused_super()") 14b468791fa95 ("mm: workingset: move shadow entry tracking to radix tree exceptional tracking") 2b3648a6ff83b ("fs/super.c: refactor alloc_super()") 39887653aab4c ("mm/workingset.c: refactor workingset_init()") 4d693d08607ab ("lib: radix-tree: update callback for changing leaf nodes") 6d75f366b9242 ("lib: radix-tree: check accounting of existing slot replacement users") 8e04944f0ea8b ("mm,vmscan: Allow preallocating memory for register_shrinker().") c92e8e10cafea ("fs: propagate shrinker::id to list_lru") f4b109c6dad54 ("lib: radix-tree: add entry deletion support to __radix_tree_replace()") f7942430e40f1 ("lib: radix-tree: native accounting of exceptional entries") v4.4.180: Failed to apply! Possible dependencies: 0200894d11551 ("new helper: destroy_unused_super()") 0cefabdaf757a ("mm: workingset: fix premature shadow node shrinking with cgroups") 0e749e54244ee ("dax: increase granularity of dax_clear_blocks() operations") 14b468791fa95 ("mm: workingset: move shadow entry tracking to radix tree exceptional tracking") 162453bfbdf4c ("mm: workingset: separate shadow unpacking and refault calculation") 2b3648a6ff83b ("fs/super.c: refactor alloc_super()") 39887653aab4c ("mm/workingset.c: refactor workingset_init()") 52db400fcd502 ("pmem, dax: clean up clear_pmem()") 612e44939c3c7 ("mm: workingset: eviction buckets for bigmem/lowbit machines") 689c94f03ae25 ("mm: workingset: #define radix entry eviction mask") 6e4eab577a0ca ("fs: Add user namespace member to struct super_block") 8e04944f0ea8b ("mm,vmscan: Allow preallocating memory for register_shrinker().") ac401cc782429 ("dax: New fault locking") b2e0d1625e193 ("dax: fix lifetime of in-kernel dax mappings with dax_map_atomic()") c92e8e10cafea ("fs: propagate shrinker::id to list_lru") d91ee87d8d85a ("vfs: Pass data, ns, and ns->userns to mount_ns") e4b2749158631 ("DAX: move RADIX_DAX_ definitions to dax.c") f7942430e40f1 ("lib: radix-tree: native accounting of exceptional entries") f9fe48bece3af ("dax: support dirty DAX entries in radix tree") How should we proceed with this patch? -- Thanks, Sasha
diff --git a/include/linux/list_lru.h b/include/linux/list_lru.h index aa5efd9351eb..d5ceb2839a2d 100644 --- a/include/linux/list_lru.h +++ b/include/linux/list_lru.h @@ -54,6 +54,7 @@ struct list_lru { #ifdef CONFIG_MEMCG_KMEM struct list_head list; int shrinker_id; + bool memcg_aware; #endif }; diff --git a/mm/list_lru.c b/mm/list_lru.c index 0730bf8ff39f..d3b538146efd 100644 --- a/mm/list_lru.c +++ b/mm/list_lru.c @@ -37,11 +37,7 @@ static int lru_shrinker_id(struct list_lru *lru) static inline bool list_lru_memcg_aware(struct list_lru *lru) { - /* - * This needs node 0 to be always present, even - * in the systems supporting sparse numa ids. - */ - return !!lru->node[0].memcg_lrus; + return lru->memcg_aware; } static inline struct list_lru_one * @@ -451,6 +447,8 @@ static int memcg_init_list_lru(struct list_lru *lru, bool memcg_aware) { int i; + lru->memcg_aware = memcg_aware; + if (!memcg_aware) return 0;