[PATCH] cpu to node relationship fixup: map cpu to node
Assume that a cpu is *physically* offlined at boot time... Because smpboot.c::smp_boot_cpu_map() canoot find cpu's sapicid, numa.c::build_cpu_to_node_map() cannot build cpu<->node map for offlined cpu. For such cpus, cpu_to_node map should be fixed at cpu-hot-add. This mapping should be done before cpu onlining. This patch also handles cpu hotremove case. Signed-off-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: "Luck, Tony" <tony.luck@intel.com> Cc: <stable@kernel.org> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
committed by
Linus Torvalds
parent
0899298649
commit
3212fe1594
@@ -36,6 +36,9 @@ int arch_register_cpu(int num)
|
||||
*/
|
||||
if (!can_cpei_retarget() && is_cpu_cpei_target(num))
|
||||
sysfs_cpus[num].cpu.no_control = 1;
|
||||
#ifdef CONFIG_NUMA
|
||||
map_cpu_to_node(num, node_cpuid[num].nid);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
return register_cpu(&sysfs_cpus[num].cpu, num);
|
||||
@@ -45,7 +48,8 @@ int arch_register_cpu(int num)
|
||||
|
||||
void arch_unregister_cpu(int num)
|
||||
{
|
||||
return unregister_cpu(&sysfs_cpus[num].cpu);
|
||||
unregister_cpu(&sysfs_cpus[num].cpu);
|
||||
unmap_cpu_from_node(num, cpu_to_node(num));
|
||||
}
|
||||
EXPORT_SYMBOL(arch_register_cpu);
|
||||
EXPORT_SYMBOL(arch_unregister_cpu);
|
||||
|
Reference in New Issue
Block a user