[RHEL8,COMMIT] mm/vmscan.c: move check for SHRINKER_NUMA_AWARE to do_shrink_slab()

Submitted by Konstantin Khorenko on April 2, 2020, 2:13 p.m.


Message ID 202004021413.032EDIDv021082@finist_co8.work.ct
State New
Series "Series without cover letter"
Headers show

Commit Message

Konstantin Khorenko April 2, 2020, 2:13 p.m.
The commit is pushed to "branch-rh8-4.18.0-80.1.2.vz8.3.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git
after rh8-4.18.0-80.1.2.vz8.3.4
commit 5c4e680a63c4ff42529f9e4403637d1dc8e23717
Author: Kirill Tkhai <ktkhai@virtuozzo.com>
Date:   Thu Apr 2 17:13:17 2020 +0300

    mm/vmscan.c: move check for SHRINKER_NUMA_AWARE to do_shrink_slab()
    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 <ktkhai@virtuozzo.com>
    Reviewed-by: Andrew Morton <akpm@linux-foundation.org>
    Cc: Vladimir Davydov <vdavydov.dev@gmail.com>
    Cc: Michal Hocko <mhocko@suse.com>
    Cc: Andrey Ryabinin <aryabinin@virtuozzo.com>
    Cc: "Huang, Ying" <ying.huang@intel.com>
    Cc: Tetsuo Handa <penguin-kernel@I-love.SAKURA.ne.jp>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Shakeel Butt <shakeelb@google.com>
    Cc: Josef Bacik <jbacik@fb.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
    (cherry picked from commit ac7fb3ad2717c56cee70456ffe9d808230db528e)
    Signed-off-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
 mm/vmscan.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

Patch hide | download patch | download mbox

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;