BSDCon 2002 Abstract
Locking in the Multithreaded FreeBSD Kernel
John H. Baldwin, The Weather Channel
Abstract
About a year ago, the FreeBSD Project embarked on the ambitious task
of multithreading its kernel. The primary goal of this project is to
improve performance on multiprocessor (MP) systems by allowing
concurrent access to the kernel while not drastically hurting
performance on uniprocessor (UP) systems. As a result, the project
has been dubbed the SMP next generation project, or SMPng for short.
Multithreading a BSD kernel is not just a one-time change; it changes
the way that data integrity within the kernel is maintained. Thus,
not only does the existing code need to be reworked, but new code must
also use these different methods. The purpose of this paper is to aid
kernel programmers in using these methods.
It is assumed that the audience is familiar with the data integrity
methods used in the traditional BSD kernel. The paper will open with
a brief overview of these traditional methods. Next, it will describe
the synchronization primitives new to the multithreaded FreeBSD kernel
including a set of guidelines concerning their use. Finally, the
paper will describe the tools provided to assist developers in using
these synchronization primitives properly.
- View the full text of this paper in
HTML and
PDF. Until February 2003, you will need your USENIX membership identification in order to access the full papers.
The Proceedings are published as a collective work, © 2002 by the USENIX Association. All Rights Reserved. Rights to individual papers remain with the author or the author's employer. Permission is granted for the noncommercial reproduction of the complete work for educational or research purposes. USENIX acknowledges all trademarks within this paper.
- If you need the latest Adobe Acrobat Reader, you can download it from Adobe's site.
- To become a USENIX Member, please see our Membership Information.
|