Subject: Re: netbsd on dual-pentium systems?
To: Adam Glass <glass@NetBSD.ORG>
From: Ron Minnich <rminnich@mini.sarnoff.com>
List: netbsd-help
Date: 01/30/1995 06:43:48
OK, i thought i would mention something re multiprocessors, since this 
one comes up a lot. I had a long talk once with wally imura who did the 
first aix/370 MP support. It was 4027 additional lines of c code, it was 
aesthetically gross, it was in practice simple, and it worked until the real 
multithreaded kernel could get done. 

What you do is put a lock on the kernel. Only one process allowed in at a 
time. You (carefully) unlock the lock when it is clear it is ok, i.e. 
when you head back to user land and at a few other points -- i am 
not sure sleep() is exactly the right place, but you get the idea -- and 
voila -- MP support. The "tricky" part (not that hard) is not screwing up 
the management of the kernel lock -- you have to get it right in the MP 
sense, i.e. spl() in the kernel lock code will obviously be wrong. 

Yeah, it's ugly. But, it worked for IBM for a while. It might work for 
us. If anyone has the time that is ...

ron

Ron Minnich                |We can think of C++ as the Full Employment Act 
rminnich@earth.sarnoff.com |for Programmers. After all, with each compiler
(609)-734-3120             |version change, you have to rewrite all your code.