Subject: HEADS UP: i386mp branch merged
To: None <,>
From: Frank van der Linden <>
List: current-users
Date: 10/01/2002 15:54:59
I just merged Bill Sommerfeld's i386mp branch into i386/-current. The
code should work fine on 1-CPU systems, and quite well on a lot
of multiprocessor systems (certainly the newer ones).

Known issues:

	* The performance counter code (options PERFCTRS) has been
	  obsoleted by this, since it doesn't work on multiprocessor
	  systems. The code and manpage will be changed to reflect

	* Interrupt counters (vmstat -i) won't work for the time
	  being if MULTIPROCESSOR is defined.

	* There are probably a few locking problems lurking in the
	  USER_LDT code with MULTIPROCESSOR switched on.

	* As on all other platforms that support MP (or kernel
	  configs that have LOCKDEBUG switched on), RAIDframe
	  may have locking problems. Recently, an effort was
	  made to fix this, but I haven't been able to verify
	  if it works. Note that RAIDframe is currently broken
	  in -current because of a seperate issue.

	* Interrupt line sharing between different IPLs isn't
	  optimal in the MP case (although not really much worse
	  than the single processor case).

Interrupt handling and some other reshuffling will hopefully
be redone in the near future (I have code which isn't quite
there yet).

Note that kernel config files for single processor machines need the line:

cpu0 	at mainbus0 configure correctly.

Multiprocessor kernels need:

cpu*            at mainbus?
ioapic*         at mainbus? apid ?
options         MULTIPROCESSOR
options         COM_MPLOCK

..and if you want debugging and/or lots of output:
options         MPDEBUG
options         MPVERBOSE

Also, because of other, unrelated changes, you'll need to recompile
config(8) first if you want to configure a new kernel.

- Frank

Frank van der Linden                          
Quality NetBSD Development, Support & Service.