On Thu, Mar 21, 2002, Andres Kroonmaa wrote:
> > Ok, maybe I was a little unclear. Yes, Solaris 8 is built out
> > of the box for concurrenc CPUs, but I've seen solaris 8 builds
> > that have all the kernel mutexes NULLed out - effectively making it
> > single CPU only. The speedup was pretty impressive on the x86.
>
> wow, I wouldn't even dream this is possible. That must be some
> heavy woodoo. Aside from impressive speed, ahem, did it work? ;)
Yes.
A freebsd/solaris developer friend of mine did it to prove to
a bunch of freebsd and solaris bigots that solaris _can_ be
as fast as FreeBSD/Linux on a single CPU.
The FreeBSD/Linux guys, obviously, don't run SMP kernels on
non-SMP machines, because there's a noticeable speed difference.
:)
For fun - The FreeBSD and Linux people have been working on making
a single SMP-aware kernel image for some time now. The problem
is that SMP kernels on single-CPUs waste a lot of time locking
data which doesn't need to be locked. When you have kernel modules
they can be compiled with or without the SMP mutexes - which
are inline (for speed) - with SMP modules on a non-SMP box they
run slower, and non-SMP modules on an SMP box .. yeah. Bad
things happen.
When I was doing FreeBSD kernel hacking, the other kernel guys
where - at boot/module load time/ - going to take a list of
all the inline mutexes and NOP them out if the machine has a single
CPU. That way, binary-only kernel distributions can work regardless
of what the machine is, so you don't need to recompile the kernel
unless you want to change the code (rather than some parameters/options).
Its all rather cute, actually. :-)
Adrian
Received on Thu Mar 21 2002 - 05:55:29 MST
This archive was generated by hypermail pre-2.1.9 : Tue Dec 09 2003 - 16:14:52 MST