]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
mm, numa: really disable NUMA balancing by default on single node machines
authorMel Gorman <mgorman@suse.de>
Thu, 14 May 2015 22:17:09 +0000 (15:17 -0700)
committerJiri Slaby <jslaby@suse.cz>
Wed, 3 Jun 2015 09:33:13 +0000 (11:33 +0200)
commit b0dc2b9bb4ab782115b964310518ee0b17784277 upstream.

NUMA balancing is meant to be disabled by default on UMA machines but
the check is using nr_node_ids (highest node) instead of
num_online_nodes (online nodes).

The consequences are that a UMA machine with a node ID of 1 or higher
will enable NUMA balancing.  This will incur useless overhead due to
minor faults with the impact depending on the workload.  These are the
impact on the stats when running a kernel build on a single node machine
whose node ID happened to be 1:

          vanilla     patched
  NUMA base PTE updates          5113158           0
  NUMA huge PMD updates              643           0
  NUMA page range updates        5442374           0
  NUMA hint faults               2109622           0
  NUMA hint local faults         2109622           0
  NUMA hint local percent            100         100
  NUMA pages migrated                  0           0

Signed-off-by: Mel Gorman <mgorman@suse.de>
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: Jiri Slaby <jslaby@suse.cz>
mm/mempolicy.c

index e63ade49ea24da976c81c1bcd6321aaff901b60c..51cd7d066e0f87592f0422c0fa161ef9777e6c4a 100644 (file)
@@ -2589,7 +2589,7 @@ static void __init check_numabalancing_enable(void)
        if (numabalancing_override)
                set_numabalancing_state(numabalancing_override == 1);
 
-       if (nr_node_ids > 1 && !numabalancing_override) {
+       if (num_online_nodes() > 1 && !numabalancing_override) {
                printk(KERN_INFO "%s automatic NUMA balancing. "
                        "Configure with numa_balancing= or sysctl",
                        numabalancing_default ? "Enabling" : "Disabling");