From: Kirill Tkhai <ktk...@virtuozzo.com> This is just refactoring to allow the next patches to have dst_memcg pointer in memcg_drain_list_lru_node().
Link: http://lkml.kernel.org/r/153063062118.1818.2761273817739499749.stgit@localhost.localdomain Signed-off-by: Kirill Tkhai <ktk...@virtuozzo.com> Acked-by: Vladimir Davydov <vdavydov....@gmail.com> Tested-by: Shakeel Butt <shake...@google.com> Cc: Al Viro <v...@zeniv.linux.org.uk> Cc: Andrey Ryabinin <aryabi...@virtuozzo.com> Cc: Chris Wilson <ch...@chris-wilson.co.uk> Cc: Greg Kroah-Hartman <gre...@linuxfoundation.org> Cc: Guenter Roeck <li...@roeck-us.net> Cc: "Huang, Ying" <ying.hu...@intel.com> Cc: Johannes Weiner <han...@cmpxchg.org> Cc: Josef Bacik <jba...@fb.com> Cc: Li RongQing <lirongq...@baidu.com> Cc: Matthew Wilcox <wi...@infradead.org> Cc: Matthias Kaehlcke <m...@chromium.org> Cc: Mel Gorman <mgor...@techsingularity.net> Cc: Michal Hocko <mho...@kernel.org> Cc: Minchan Kim <minc...@kernel.org> Cc: Philippe Ombredanne <pombreda...@nexb.com> Cc: Roman Gushchin <g...@fb.com> Cc: Sahitya Tummala <stumm...@codeaurora.org> Cc: Stephen Rothwell <s...@canb.auug.org.au> Cc: Tetsuo Handa <penguin-ker...@i-love.sakura.ne.jp> Cc: Thomas Gleixner <t...@linutronix.de> Cc: Waiman Long <long...@redhat.com> Signed-off-by: Andrew Morton <a...@linux-foundation.org> Signed-off-by: Linus Torvalds <torva...@linux-foundation.org> (cherry picked from commit 9bec5c35bfa3d41b046594b5890f772ed737f1fd) Signed-off-by: Andrey Ryabinin <aryabi...@virtuozzo.com> --- include/linux/list_lru.h | 2 +- mm/list_lru.c | 11 ++++++----- mm/memcontrol.c | 2 +- 3 files changed, 8 insertions(+), 7 deletions(-) diff --git a/include/linux/list_lru.h b/include/linux/list_lru.h index 9e75bb33766b..d9c16f2f2f00 100644 --- a/include/linux/list_lru.h +++ b/include/linux/list_lru.h @@ -69,7 +69,7 @@ int __list_lru_init(struct list_lru *lru, bool memcg_aware, __list_lru_init((lru), true, NULL, shrinker) int memcg_update_all_list_lrus(int num_memcgs); -void memcg_drain_all_list_lrus(int src_idx, int dst_idx); +void memcg_drain_all_list_lrus(int src_idx, struct mem_cgroup *dst_memcg); /** * list_lru_add: add an element to the lru list's tail diff --git a/mm/list_lru.c b/mm/list_lru.c index 55a76465f7a2..a66d13b16046 100644 --- a/mm/list_lru.c +++ b/mm/list_lru.c @@ -508,8 +508,9 @@ int memcg_update_all_list_lrus(int new_size) } static void memcg_drain_list_lru_node(struct list_lru_node *nlru, - int src_idx, int dst_idx) + int src_idx, struct mem_cgroup *dst_memcg) { + int dst_idx = dst_memcg->kmemcg_id; struct list_lru_one *src, *dst; /* @@ -529,7 +530,7 @@ static void memcg_drain_list_lru_node(struct list_lru_node *nlru, } static void memcg_drain_list_lru(struct list_lru *lru, - int src_idx, int dst_idx) + int src_idx, struct mem_cgroup *dst_memcg) { int i; @@ -537,16 +538,16 @@ static void memcg_drain_list_lru(struct list_lru *lru, return; for_each_node(i) - memcg_drain_list_lru_node(&lru->node[i], src_idx, dst_idx); + memcg_drain_list_lru_node(&lru->node[i], src_idx, dst_memcg); } -void memcg_drain_all_list_lrus(int src_idx, int dst_idx) +void memcg_drain_all_list_lrus(int src_idx, struct mem_cgroup *dst_memcg) { struct list_lru *lru; mutex_lock(&list_lrus_mutex); list_for_each_entry(lru, &list_lrus, list) - memcg_drain_list_lru(lru, src_idx, dst_idx); + memcg_drain_list_lru(lru, src_idx, dst_memcg); mutex_unlock(&list_lrus_mutex); } #else diff --git a/mm/memcontrol.c b/mm/memcontrol.c index 0b68b27ab3dc..f8998aaf8528 100644 --- a/mm/memcontrol.c +++ b/mm/memcontrol.c @@ -3125,7 +3125,7 @@ static void memcg_offline_kmem(struct mem_cgroup *memcg) } rcu_read_unlock(); - memcg_drain_all_list_lrus(kmemcg_id, parent->kmemcg_id); + memcg_drain_all_list_lrus(kmemcg_id, parent); memcg_free_cache_id(kmemcg_id); } -- 2.24.1 _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel