Subject: building your own i386 smp kernels.
To: None <email@example.com, firstname.lastname@example.org>
From: Bill Sommerfeld <email@example.com>
Date: 08/24/2000 12:03:37
Here's roughly what you need to do in order to build your own
smp-capable kernels. Note that if you're not familiar with kernel
debugging and the DDB command set you probably don't want to try
1) check out a full -current kernel source tree 2) use the
"sommerfeld_i386mp_1" branch for arch/i386:
cvs update -rsommerfeld_i386mp_1
3) use a kernel config such as GENERIC.MP / INSTALL.MP to build a
You want both MULTIPROCESSOR and an ioapic device:
ioapic* at mainbus? apid ?
You definitely want DIAGNOSTIC, DDB, DEBUG, and LOCKDEBUG turned on.
There are a number of known bugs which will be cleaned up as Jason and
I have time.
The "short list" at the moment:
- probably a few pmap bugs (the code currently there is likely
to lose referenced/modified bits if a pmap is used by
- the "makeinfo" command seems to behave strangely (when
- there is not yet an interprocessor interrupt to force the
scheduler to run on a slave cpu; this means that (for
instance) signals can't be delivered to processes looping in
userspace on a slave cpu.
- interrupt deallocation doesn't work, which means that the
automated interrupt probing done by the pcic driver for
pcmcia slots will crash the system, so don't configure in
any pcic or pcmcia drivers.
Be prepared for sudden random crashes, be prepared to lose data, and
be prepared to debug problems you trip over.
Thanks for your help.