Subject: building your own i386 smp kernels.
To: None <tech-smp@netbsd.org, port-i386@netbsd.org>
From: Bill Sommerfeld <sommerfeld@orchard.arlington.ma.us>
List: tech-smp
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
this...
1) check out a full -current kernel source tree 2) use the
"sommerfeld_i386mp_1" branch for arch/i386:
cd sys/arch/i386
cvs update -rsommerfeld_i386mp_1
3) use a kernel config such as GENERIC.MP / INSTALL.MP to build a
kernel.
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
multiple cpu's)
- the "makeinfo" command seems to behave strangely (when
building usr.sbin/amd/doc)
- 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.
- Bill