Sciweavers

USENIX
2001

Improving the FreeBSD SMP Implementation

13 years 6 months ago
Improving the FreeBSD SMP Implementation
UNIX-derived operating systems have traditionally have a simplistic approach to process synchronization which is unsuited to multiprocessor application. Initial FreeBSD SMP support kept this approach by allowing only one process to run in kernel mode at any time, and also blocked interrupts across multiple processors, causing seriously suboptimal performance of I/O bound systems. This paper describes work done to remove this bottleneck. It derives from work done on BSD/OS and has many similarities with the approach taken in SunOS 5. Synchronization is performed by mutexes. In general, mutexes attempt to block rather than to spin in cases where the likely wait time is long enough to warrant a process switch. The issue of blocking interrupt handlers is addressed by attaching a process context to the interrupt handlers. This paper is a snapshot of a work in progress. An up-to-date version is available at http://www.lemis.com/SMPng/.
Greg Lehey
Added 31 Oct 2010
Updated 31 Oct 2010
Type Conference
Year 2001
Where USENIX
Authors Greg Lehey
Comments (0)