summaryrefslogtreecommitdiff
path: root/mm
diff options
context:
space:
mode:
authorMel Gorman <mgorman@suse.de>2014-08-06 16:07:20 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2014-08-06 18:01:20 -0700
commitf7b5d647946aae1647bf5cd26c16b3a793c1ac49 (patch)
tree6dc945631424f22b8044985d15fd949fc45e711a /mm
parentbb0b6dffa2ccfbd9747ad0cc87c7459622896e60 (diff)
downloadlinux-exynos-f7b5d647946aae1647bf5cd26c16b3a793c1ac49.tar.gz
linux-exynos-f7b5d647946aae1647bf5cd26c16b3a793c1ac49.tar.bz2
linux-exynos-f7b5d647946aae1647bf5cd26c16b3a793c1ac49.zip
mm: page_alloc: abort fair zone allocation policy when remotes nodes are encountered
The purpose of numa_zonelist_order=zone is to preserve lower zones for use with 32-bit devices. If locality is preferred then the numa_zonelist_order=node policy should be used. Unfortunately, the fair zone allocation policy overrides this by skipping zones on remote nodes until the lower one is found. While this makes sense from a page aging and performance perspective, it breaks the expected zonelist policy. This patch restores the expected behaviour for zone-list ordering. Signed-off-by: Mel Gorman <mgorman@suse.de> Acked-by: Johannes Weiner <hannes@cmpxchg.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'mm')
-rw-r--r--mm/page_alloc.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c
index daa016063793..6e5e8f762532 100644
--- a/mm/page_alloc.c
+++ b/mm/page_alloc.c
@@ -1965,7 +1965,7 @@ zonelist_scan:
*/
if (alloc_flags & ALLOC_FAIR) {
if (!zone_local(preferred_zone, zone))
- continue;
+ break;
if (zone_page_state(zone, NR_ALLOC_BATCH) <= 0)
continue;
}