]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
sparc64: Fix numa node distance initialization
authorNitin Gupta <nitin.m.gupta@oracle.com>
Wed, 6 Jan 2016 06:35:35 +0000 (22:35 -0800)
committerAllen Pais <allen.pais@oracle.com>
Thu, 4 Feb 2016 13:11:00 +0000 (18:41 +0530)
Orabug: 22495713

Currently, NUMA node distance matrix is initialized only
when a machine descriptor (MD) exists. However, sun4u
machines (e.g. Sun Blade 2500) do not have an MD and thus
distance values were left uninitialized. The initialization
is now moved such that it happens on both sun4u and sun4v.

Signed-off-by: Nitin Gupta <nitin.m.gupta@oracle.com>
Tested-by: Mikael Pettersson <mikpelinux@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
(cherry picked from commit 36beca6571c941b28b0798667608239731f9bc3a)
Signed-off-by: Allen Pais <allen.pais@oracle.com>
arch/sparc/mm/init_64.c

index 189778f8ffeb15773b98e34216eae83096b7a3c3..3261a7ee9db957b7517d1e928b41e9d62acb503c 100644 (file)
@@ -1267,13 +1267,6 @@ static int __init numa_parse_mdesc(void)
        int i, j, err, count;
        u64 node;
 
-       /* Some sane defaults for numa latency values */
-       for (i = 0; i < MAX_NUMNODES; i++) {
-               for (j = 0; j < MAX_NUMNODES; j++)
-                       numa_latency[i][j] = (i == j) ?
-                               LOCAL_DISTANCE : REMOTE_DISTANCE;
-       }
-
        node = mdesc_node_by_name(md, MDESC_NODE_NULL, "latency-groups");
        if (node == MDESC_NODE_NULL) {
                mdesc_release(md);
@@ -1369,10 +1362,18 @@ static int __init numa_parse_sun4u(void)
 
 static int __init bootmem_init_numa(void)
 {
+       int i, j;
        int err = -1;
 
        numadbg("bootmem_init_numa()\n");
 
+       /* Some sane defaults for numa latency values */
+       for (i = 0; i < MAX_NUMNODES; i++) {
+               for (j = 0; j < MAX_NUMNODES; j++)
+                       numa_latency[i][j] = (i == j) ?
+                               LOCAL_DISTANCE : REMOTE_DISTANCE;
+       }
+
        if (numa_enabled) {
                if (tlb_type == hypervisor)
                        err = numa_parse_mdesc();