In writing the hotplug CPU stuff, Linus asked me to alter the
boot sequence to "plug in" CPUs. I am shortly going to be sending
these patches to him now I have got my x86 box to boot with the
changes.
The changes are as follows:
1) Non-linear CPU support. No more number/logical map, or
smp_num_cpus. This is easy to change over to.
2) The boot sequence used to be:
smp_boot_cpus()
smp_commence()
start idle thread, do initfuncs...
Now it is:
start idle thread
smp_prepare_cpus(int max_cpus)
=> Probes for cpus, sets up cpu_possible() macro to work.
do initfuncs
For each cpu for which cpu_possible(cpu) is true:
cpu_up(int cpunum)
smp_cpus_done(max_cpus);
There are two ways to transition: one is to do the minimal hacks so
that the new boot code works (as per my x86 patch). The other is to
take into account that the next stage (optional by arch) is to
actually bring cpus up and down on the fly, and hence actually write
code that will work after boot as well (as per my ppc patch).
For the patches, see:
http://www.kernel.org/pub/linux/kernel/people/rusty
Rusty.
-- Anyone who quotes me in their sig is an idiot. -- Rusty Russell. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/