From: Kirill Tkhai <ktk...@virtuozzo.com> In case of shrink_slab_memcg() we do not zero nid, when shrinker is not numa-aware. This is not a real problem, since currently all memcg-aware shrinkers are numa-aware too (we have two: super_block shrinker and workingset shrinker), but something may change in the future.
Link: http://lkml.kernel.org/r/153320759911.18959.8842396230157677671.stgit@localhost.localdomain Signed-off-by: Kirill Tkhai <ktk...@virtuozzo.com> Reviewed-by: Andrew Morton <a...@linux-foundation.org> Cc: Vladimir Davydov <vdavydov....@gmail.com> Cc: Michal Hocko <mho...@suse.com> Cc: Andrey Ryabinin <aryabi...@virtuozzo.com> Cc: "Huang, Ying" <ying.hu...@intel.com> Cc: Tetsuo Handa <penguin-ker...@i-love.sakura.ne.jp> Cc: Matthew Wilcox <wi...@infradead.org> Cc: Shakeel Butt <shake...@google.com> Cc: Josef Bacik <jba...@fb.com> Signed-off-by: Andrew Morton <a...@linux-foundation.org> Signed-off-by: Linus Torvalds <torva...@linux-foundation.org> (cherry picked from commit ac7fb3ad2717c56cee70456ffe9d808230db528e) Signed-off-by: Andrey Ryabinin <aryabi...@virtuozzo.com> --- mm/vmscan.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/mm/vmscan.c b/mm/vmscan.c index cdf75a69f6f9..18e4f74e1ab3 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -423,6 +423,9 @@ static unsigned long do_shrink_slab(struct shrink_control *shrinkctl, : SHRINK_BATCH; long scanned = 0, next_deferred; + if (!(shrinker->flags & SHRINKER_NUMA_AWARE)) + nid = 0; + freeable = shrinker->count_objects(shrinker, shrinkctl); if (freeable == 0 || freeable == SHRINK_EMPTY) return freeable; @@ -652,9 +655,6 @@ static unsigned long shrink_slab(gfp_t gfp_mask, int nid, .for_drop_caches = for_drop_caches, }; - if (!(shrinker->flags & SHRINKER_NUMA_AWARE)) - sc.nid = 0; - ret = do_shrink_slab(&sc, shrinker, priority); if (ret == SHRINK_EMPTY) ret = 0; -- 2.24.1 _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel