]> git.ipfire.org Git - people/arne_f/kernel.git/commitdiff
mm: page_alloc: do not update zlc unless the zlc is active
authorMel Gorman <mgorman@suse.de>
Wed, 4 Jun 2014 23:10:05 +0000 (16:10 -0700)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 30 Jan 2015 01:40:51 +0000 (17:40 -0800)
commit 65bb371984d6a2c909244eb749e482bb40b72e36 upstream.

The zlc is used on NUMA machines to quickly skip over zones that are full.
 However it is always updated, even for the first zone scanned when the
zlc might not even be active.  As it's a write to a bitmap that
potentially bounces cache line it's deceptively expensive and most
machines will not care.  Only update the zlc if it was active.

Signed-off-by: Mel Gorman <mgorman@suse.de>
Acked-by: Johannes Weiner <hannes@cmpxchg.org>
Reviewed-by: Rik van Riel <riel@redhat.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: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
mm/page_alloc.c

index 4b258297cc7c9890567897d8d2420dfba297b1e5..c7e27b8c72004ddddf0ff6e58334953ae03ffecf 100644 (file)
@@ -2059,7 +2059,7 @@ try_this_zone:
                if (page)
                        break;
 this_zone_full:
-               if (IS_ENABLED(CONFIG_NUMA))
+               if (IS_ENABLED(CONFIG_NUMA) && zlc_active)
                        zlc_mark_zone_full(zonelist, z);
        }