Hotplug CPU Boot Changes: BEWARE

Rusty Russell (rusty@rustcorp.com.au)
Fri, 07 Jun 2002 20:40:36 +1000


Hi all (esp port maintainers),

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/