Supporting 2nd Processors in Open BSD

Robert Davies <[email protected]> Fri, 21 Mar 2003 08:42:46 +0000
Newsgroups gmane.os.openbsd.smp
Message-ID <20030321084929.GKTX6166.mta01-svc.ntlworld.com@there>
The issue that has held back development of SMP in Open BSD, is the large 
amount of changes, in very many and complex areas of the OS kernel.  Some a 
few years back did have processors booting and initialised (roughly bout the 
2.9 release or so), but core OpenBSD development continued a pace without any 
regard to SMP support.

It would be much more realistic to cut back on the ambitions, and have a 
project deliver something more self contained with a low impact on current 
source.  It strikes me that treating the 2nd CPU as a device allows simpler 
goals like :

1)  Intitialise 2nd Processor as Slave during boot up

2)  Locking primitives for synchronisation, between Master & Slave processor

3)  2nd CPU Crypto driver, where a process can punt calculations to the 
unused CPU, treating it much like a hardware encryption device.

Actually getting some code contributions into the core Open BSD kernel, 
without significantly increasing the complexity of that kernel, would be  
implementable.  As there is already support for hardware devices for such 
tasks, a "2nd CPU software emulation" ought not to be disruptive.

Without the support and help of the core kernel developers, there is no 
chance of things changing.  The objective "Produce a working SMP kernel" is 
simply too big for a cinderella side-project.

The fact is already now with Intel's Hyper Threading and upcoming dual-core 
Processor dies, the lack of SMP support is going to become more of a problem 
for OpenBSD, so with time the attitudes are likely to change.  Few ppl are 
really willing to wait 1.5 years to buy an upgrade to acquire the today's 
performance, they run FreeBSD or Linux instead. 

Rob