| From foo@baz Mon Jun 20 10:48:29 PDT 2016 |
| From: Nitin Gupta <nitin.m.gupta@oracle.com> |
| Date: Tue, 5 Jan 2016 22:35:35 -0800 |
| Subject: sparc64: Fix numa node distance initialization |
| |
| From: Nitin Gupta <nitin.m.gupta@oracle.com> |
| |
| [ Upstream commit 36beca6571c941b28b0798667608239731f9bc3a ] |
| |
| 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> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org> |
| --- |
| arch/sparc/mm/init_64.c | 15 ++++++++------- |
| 1 file changed, 8 insertions(+), 7 deletions(-) |
| |
| --- 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) |
| 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(); |