Commit b3b0bd3970bbe5c770a3f0764c4da9111605ad47
Committed by
Jiri Slaby
1 parent
5a6ad555bd
Exists in
ti-linux-3.12.y
and in
2 other branches
mm: vmscan: respect NUMA policy mask when shrinking slab on direct reclaim
commit 99120b772b52853f9a2b829a21dd44d9b20558f1 upstream. When direct reclaim is executed by a process bound to a set of NUMA nodes, we should scan only those nodes when possible, but currently we will scan kmem from all online nodes even if the kmem shrinker is NUMA aware. That said, binding a process to a particular NUMA node won't prevent it from shrinking inode/dentry caches from other nodes, which is not good. Fix this. Signed-off-by: Vladimir Davydov <vdavydov@parallels.com> Cc: Mel Gorman <mgorman@suse.de> Cc: Michal Hocko <mhocko@suse.cz> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Rik van Riel <riel@redhat.com> Cc: Dave Chinner <dchinner@redhat.com> Cc: Glauber Costa <glommer@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Signed-off-by: Mel Gorman <mgorman@suse.de> Signed-off-by: Jiri Slaby <jslaby@suse.cz>
Showing 1 changed file with 2 additions and 2 deletions Side-by-side Diff
mm/vmscan.c
... | ... | @@ -2424,8 +2424,8 @@ |
2424 | 2424 | unsigned long lru_pages = 0; |
2425 | 2425 | |
2426 | 2426 | nodes_clear(shrink->nodes_to_scan); |
2427 | - for_each_zone_zonelist(zone, z, zonelist, | |
2428 | - gfp_zone(sc->gfp_mask)) { | |
2427 | + for_each_zone_zonelist_nodemask(zone, z, zonelist, | |
2428 | + gfp_zone(sc->gfp_mask), sc->nodemask) { | |
2429 | 2429 | if (!cpuset_zone_allowed_hardwall(zone, GFP_KERNEL)) |
2430 | 2430 | continue; |
2431 | 2431 |