aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNitin Gupta <nitin.m.gupta@oracle.com>2016-01-06 01:35:35 -0500
committerDavid S. Miller <davem@davemloft.net>2016-01-14 16:58:59 -0500
commit36beca6571c941b28b0798667608239731f9bc3a (patch)
treed2a065d34dce3fb4865ef77a2b8fcd794da78a13
parent525fd5a94e1be0776fa652df5c687697db508c91 (diff)
sparc64: Fix numa node distance initialization
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>
-rw-r--r--arch/sparc/mm/init_64.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c
index 3025bd57f7ab..6f216853f272 100644
--- a/arch/sparc/mm/init_64.c
+++ b/arch/sparc/mm/init_64.c
@@ -1267,13 +1267,6 @@ static int __init numa_parse_mdesc(void)
1267 int i, j, err, count; 1267 int i, j, err, count;
1268 u64 node; 1268 u64 node;
1269 1269
1270 /* Some sane defaults for numa latency values */
1271 for (i = 0; i < MAX_NUMNODES; i++) {
1272 for (j = 0; j < MAX_NUMNODES; j++)
1273 numa_latency[i][j] = (i == j) ?
1274 LOCAL_DISTANCE : REMOTE_DISTANCE;
1275 }
1276
1277 node = mdesc_node_by_name(md, MDESC_NODE_NULL, "latency-groups"); 1270 node = mdesc_node_by_name(md, MDESC_NODE_NULL, "latency-groups");
1278 if (node == MDESC_NODE_NULL) { 1271 if (node == MDESC_NODE_NULL) {
1279 mdesc_release(md); 1272 mdesc_release(md);
@@ -1369,10 +1362,18 @@ static int __init numa_parse_sun4u(void)
1369 1362
1370static int __init bootmem_init_numa(void) 1363static int __init bootmem_init_numa(void)
1371{ 1364{
1365 int i, j;
1372 int err = -1; 1366 int err = -1;
1373 1367
1374 numadbg("bootmem_init_numa()\n"); 1368 numadbg("bootmem_init_numa()\n");
1375 1369
1370 /* Some sane defaults for numa latency values */
1371 for (i = 0; i < MAX_NUMNODES; i++) {
1372 for (j = 0; j < MAX_NUMNODES; j++)
1373 numa_latency[i][j] = (i == j) ?
1374 LOCAL_DISTANCE : REMOTE_DISTANCE;
1375 }
1376
1376 if (numa_enabled) { 1377 if (numa_enabled) {
1377 if (tlb_type == hypervisor) 1378 if (tlb_type == hypervisor)
1378 err = numa_parse_mdesc(); 1379 err = numa_parse_mdesc();