| From b0dc2b9bb4ab782115b964310518ee0b17784277 Mon Sep 17 00:00:00 2001 |
| From: Mel Gorman <mgorman@suse.de> |
| Date: Thu, 14 May 2015 15:17:09 -0700 |
| Subject: mm, numa: really disable NUMA balancing by default on single node machines |
| |
| From: Mel Gorman <mgorman@suse.de> |
| |
| 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: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| |
| --- |
| mm/mempolicy.c | 2 +- |
| 1 file changed, 1 insertion(+), 1 deletion(-) |
| |
| --- a/mm/mempolicy.c |
| +++ b/mm/mempolicy.c |
| @@ -2517,7 +2517,7 @@ static void __init check_numabalancing_e |
| if (numabalancing_override) |
| set_numabalancing_state(numabalancing_override == 1); |
| |
| - if (nr_node_ids > 1 && !numabalancing_override) { |
| + if (num_online_nodes() > 1 && !numabalancing_override) { |
| pr_info("%s automatic NUMA balancing. " |
| "Configure with numa_balancing= or the " |
| "kernel.numa_balancing sysctl", |