[PATCH] powerpc numa: Consolidate assignment of cpus to nodes
We can plug the boot cpu into its node independently of whether numa topology is detected. And numa_setup_cpu does the right thing for all cases now, so remove special-casing for non-numa from the cpu hotplug callback. Signed-off-by: Nathan Lynch <nathanl@austin.ibm.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
This commit is contained in:
Родитель
482ec7c403
Коммит
2b2612272c
|
@ -321,10 +321,7 @@ static int cpu_numa_callback(struct notifier_block *nfb,
|
||||||
|
|
||||||
switch (action) {
|
switch (action) {
|
||||||
case CPU_UP_PREPARE:
|
case CPU_UP_PREPARE:
|
||||||
if (min_common_depth == -1 || !numa_enabled)
|
numa_setup_cpu(lcpu);
|
||||||
map_cpu_to_node(lcpu, 0);
|
|
||||||
else
|
|
||||||
numa_setup_cpu(lcpu);
|
|
||||||
ret = NOTIFY_OK;
|
ret = NOTIFY_OK;
|
||||||
break;
|
break;
|
||||||
#ifdef CONFIG_HOTPLUG_CPU
|
#ifdef CONFIG_HOTPLUG_CPU
|
||||||
|
@ -459,8 +456,6 @@ new_range:
|
||||||
goto new_range;
|
goto new_range;
|
||||||
}
|
}
|
||||||
|
|
||||||
numa_setup_cpu(boot_cpuid);
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -475,7 +470,6 @@ static void __init setup_nonnuma(void)
|
||||||
printk(KERN_INFO "Memory hole size: %ldMB\n",
|
printk(KERN_INFO "Memory hole size: %ldMB\n",
|
||||||
(top_of_ram - total_ram) >> 20);
|
(top_of_ram - total_ram) >> 20);
|
||||||
|
|
||||||
map_cpu_to_node(boot_cpuid, 0);
|
|
||||||
for (i = 0; i < lmb.memory.cnt; ++i)
|
for (i = 0; i < lmb.memory.cnt; ++i)
|
||||||
add_region(0, lmb.memory.region[i].base >> PAGE_SHIFT,
|
add_region(0, lmb.memory.region[i].base >> PAGE_SHIFT,
|
||||||
lmb_size_pages(&lmb.memory, i));
|
lmb_size_pages(&lmb.memory, i));
|
||||||
|
@ -612,6 +606,8 @@ void __init do_init_bootmem(void)
|
||||||
dump_numa_memory_topology();
|
dump_numa_memory_topology();
|
||||||
|
|
||||||
register_cpu_notifier(&ppc64_numa_nb);
|
register_cpu_notifier(&ppc64_numa_nb);
|
||||||
|
cpu_numa_callback(&ppc64_numa_nb, CPU_UP_PREPARE,
|
||||||
|
(void *)(unsigned long)boot_cpuid);
|
||||||
|
|
||||||
for_each_online_node(nid) {
|
for_each_online_node(nid) {
|
||||||
unsigned long start_pfn, end_pfn, pages_present;
|
unsigned long start_pfn, end_pfn, pages_present;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче