fs: propagate shrinker::id to list_lru
Add list_lru::shrinker_id field and populate it by registered shrinker id. This will be used to set correct bit in memcg shrinkers map by lru code in next patches, after there appeared the first related to memcg element in list_lru. Link: http://lkml.kernel.org/r/153063059758.1818.14866596416857717800.stgit@localhost.localdomain Signed-off-by: Kirill Tkhai <ktkhai@virtuozzo.com> Acked-by: Vladimir Davydov <vdavydov.dev@gmail.com> Tested-by: Shakeel Butt <shakeelb@google.com> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Andrey Ryabinin <aryabinin@virtuozzo.com> Cc: Chris Wilson <chris@chris-wilson.co.uk> Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org> Cc: Guenter Roeck <linux@roeck-us.net> Cc: "Huang, Ying" <ying.huang@intel.com> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Josef Bacik <jbacik@fb.com> Cc: Li RongQing <lirongqing@baidu.com> Cc: Matthew Wilcox <willy@infradead.org> Cc: Matthias Kaehlcke <mka@chromium.org> Cc: Mel Gorman <mgorman@techsingularity.net> Cc: Michal Hocko <mhocko@kernel.org> Cc: Minchan Kim <minchan@kernel.org> Cc: Philippe Ombredanne <pombredanne@nexb.com> Cc: Roman Gushchin <guro@fb.com> Cc: Sahitya Tummala <stummala@codeaurora.org> Cc: Stephen Rothwell <sfr@canb.auug.org.au> Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: Waiman Long <longman@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:

committed by
Linus Torvalds

parent
2b3648a6ff
commit
c92e8e10ca
@@ -546,12 +546,18 @@ static void memcg_destroy_list_lru(struct list_lru *lru)
|
||||
#endif /* CONFIG_MEMCG_KMEM */
|
||||
|
||||
int __list_lru_init(struct list_lru *lru, bool memcg_aware,
|
||||
struct lock_class_key *key)
|
||||
struct lock_class_key *key, struct shrinker *shrinker)
|
||||
{
|
||||
int i;
|
||||
size_t size = sizeof(*lru->node) * nr_node_ids;
|
||||
int err = -ENOMEM;
|
||||
|
||||
#ifdef CONFIG_MEMCG_KMEM
|
||||
if (shrinker)
|
||||
lru->shrinker_id = shrinker->id;
|
||||
else
|
||||
lru->shrinker_id = -1;
|
||||
#endif
|
||||
memcg_get_cache_ids();
|
||||
|
||||
lru->node = kzalloc(size, GFP_KERNEL);
|
||||
@@ -594,6 +600,9 @@ void list_lru_destroy(struct list_lru *lru)
|
||||
kfree(lru->node);
|
||||
lru->node = NULL;
|
||||
|
||||
#ifdef CONFIG_MEMCG_KMEM
|
||||
lru->shrinker_id = -1;
|
||||
#endif
|
||||
memcg_put_cache_ids();
|
||||
}
|
||||
EXPORT_SYMBOL_GPL(list_lru_destroy);
|
||||
|
Reference in New Issue
Block a user