CPU hotplug boot change for IA64
Hi David, Rusty,
I attached a CPU hotplug boot change patch for IA-64 against 2.5.29 + David's IA64 patch. Please include this in the next release.
I've just tested it on a 2way Bigsur but it should work on the other systems.
In this patch, I added initial value of cpu_online_map as following,
/* Bitmask of currently online CPUs */
-volatile unsigned long cpu_online_map;
+volatile unsigned long cpu_online_map = 1;
unsigned long phys_cpu_present_map;
Bit for CPU#0 on cpu_online_map was set at smp_boot_cpus() before. But on the 2.5.29, place of calling smp_boot_cpus() is changed to later timing and this seems to make a chance that smp_call_function() is called before setting cpu_online_map, (I guess.)
In that case, smp_call_function won't return because num_online_cpus() returns 0 and the system will hang.
I have an experience of this problem only on a large system like Tiger, but it may occur on another system.
Rusty, I guess this modification should be needed for i386, too.
I'd appreciate any comment.
Thanks,
Kimi
Signature · 1 line
Kimio Suganuma <[email protected]>