|
@@ -836,18 +836,13 @@ out:
|
|
|
of_node_put(rtas);
|
|
|
}
|
|
|
|
|
|
-void __init initmem_init(void)
|
|
|
+void __init mem_topology_setup(void)
|
|
|
{
|
|
|
- int nid, cpu;
|
|
|
-
|
|
|
- max_low_pfn = memblock_end_of_DRAM() >> PAGE_SHIFT;
|
|
|
- max_pfn = max_low_pfn;
|
|
|
+ int cpu;
|
|
|
|
|
|
if (parse_numa_properties())
|
|
|
setup_nonnuma();
|
|
|
|
|
|
- memblock_dump_all();
|
|
|
-
|
|
|
/*
|
|
|
* Modify the set of possible NUMA nodes to reflect information
|
|
|
* available about the set of online nodes, and the set of nodes
|
|
@@ -858,6 +853,23 @@ void __init initmem_init(void)
|
|
|
|
|
|
find_possible_nodes();
|
|
|
|
|
|
+ setup_node_to_cpumask_map();
|
|
|
+
|
|
|
+ reset_numa_cpu_lookup_table();
|
|
|
+
|
|
|
+ for_each_present_cpu(cpu)
|
|
|
+ numa_setup_cpu(cpu);
|
|
|
+}
|
|
|
+
|
|
|
+void __init initmem_init(void)
|
|
|
+{
|
|
|
+ int nid;
|
|
|
+
|
|
|
+ max_low_pfn = memblock_end_of_DRAM() >> PAGE_SHIFT;
|
|
|
+ max_pfn = max_low_pfn;
|
|
|
+
|
|
|
+ memblock_dump_all();
|
|
|
+
|
|
|
for_each_online_node(nid) {
|
|
|
unsigned long start_pfn, end_pfn;
|
|
|
|
|
@@ -868,10 +880,6 @@ void __init initmem_init(void)
|
|
|
|
|
|
sparse_init();
|
|
|
|
|
|
- setup_node_to_cpumask_map();
|
|
|
-
|
|
|
- reset_numa_cpu_lookup_table();
|
|
|
-
|
|
|
/*
|
|
|
* We need the numa_cpu_lookup_table to be accurate for all CPUs,
|
|
|
* even before we online them, so that we can use cpu_to_{node,mem}
|
|
@@ -881,8 +889,6 @@ void __init initmem_init(void)
|
|
|
*/
|
|
|
cpuhp_setup_state_nocalls(CPUHP_POWER_NUMA_PREPARE, "powerpc/numa:prepare",
|
|
|
ppc_numa_cpu_prepare, ppc_numa_cpu_dead);
|
|
|
- for_each_present_cpu(cpu)
|
|
|
- numa_setup_cpu(cpu);
|
|
|
}
|
|
|
|
|
|
static int __init early_numa(char *p)
|