powerpc/numa: Prefer node id queried from vphn
Node id queried from the static device tree may not be correct. For example: it may always show 0 on a shared processor. Hence prefer the node id queried from vphn and fallback on the device tree based node id if vphn query fails. Signed-off-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20200818081104.57888-3-srikar@linux.vnet.ibm.com
This commit is contained in:
		
							parent
							
								
									a874f1005e
								
							
						
					
					
						commit
						6398eaa268
					
				| @ -728,21 +728,22 @@ static int __init parse_numa_properties(void) | ||||
| 	 */ | ||||
| 	for_each_present_cpu(i) { | ||||
| 		struct device_node *cpu; | ||||
| 		int nid; | ||||
| 
 | ||||
| 		cpu = of_get_cpu_node(i, NULL); | ||||
| 		BUG_ON(!cpu); | ||||
| 		nid = of_node_to_nid_single(cpu); | ||||
| 		of_node_put(cpu); | ||||
| 		int nid = vphn_get_nid(i); | ||||
| 
 | ||||
| 		/*
 | ||||
| 		 * Don't fall back to default_nid yet -- we will plug | ||||
| 		 * cpus into nodes once the memory scan has discovered | ||||
| 		 * the topology. | ||||
| 		 */ | ||||
| 		if (nid < 0) | ||||
| 			continue; | ||||
| 		node_set_online(nid); | ||||
| 		if (nid == NUMA_NO_NODE) { | ||||
| 			cpu = of_get_cpu_node(i, NULL); | ||||
| 			BUG_ON(!cpu); | ||||
| 			nid = of_node_to_nid_single(cpu); | ||||
| 			of_node_put(cpu); | ||||
| 		} | ||||
| 
 | ||||
| 		if (likely(nid > 0)) | ||||
| 			node_set_online(nid); | ||||
| 	} | ||||
| 
 | ||||
| 	get_n_mem_cells(&n_mem_addr_cells, &n_mem_size_cells); | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user