DragonFly kernel List (threaded) for 2007-03
Re: SMP/UP kernel S01E02
:Well, I've been thinking of the SMP/UP issue many times, and the best solution would be if SMP kernels could boot on UP machines. I have plenty UP boxes and a few SMP boxes to test on. I am not claiming anyhing, this is just 'food for thought'.
:Gergo Szakal <firstname.lastname@example.org>
:University Of Szeged, HU
:Faculty Of General Medicine
It's actually fairly easy to do this. I did some of the code separation
work months ago but didn't go all the way to allowing the ICU vs APIC
selection to occur dynamically.
The main issue is determining whether the ICU or the APIC should be used
to route interrupts.
At the moment only one or the other can be included. It would not
take a whole lot of work to allow both to be included, then figure out
which one to use at run time during early boot.
To do this, the MachIntrABI structure needs to be declared generically
and then loaded with either the icu or the apic ABI. Right now the
structure is declared in the icu and the apic code (so only one can be
I've done most of the other namespace separation already. I think
the MachIntrABI structure is the last big piece.
The SMP code for handling IPI messages and other places where we have
#ifdef SMP would also need some work to make the SMP code operate in
a UP environment.