Skip to main content
Back to USENIX
  • Conferences
  • Students
Sign in

USENIX Conference Policies

  • Event Code of Conduct
  • Conference Network Policy
  • Statement on Environmental Responsibility Policy

Locking in the Multithreaded FreeBSD Kernel

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.

John H. Baldwin, The Weather Channel

BibTeX
@inproceedings {270710,
author = {John H. Baldwin},
title = {Locking in the Multithreaded {FreeBSD} Kernel},
booktitle = {BSDCon 2002 (BSDCon 2002)},
year = {2002},
address = {San Francisco, CA},
url = {https://www.usenix.org/conference/bsdcon02/locking-multithreaded-freebsd-kernel},
publisher = {USENIX Association},
month = feb
}
Download

Links

Paper: 
http://www.usenix.org/events/bsdcon02/full_papers/baldwin/baldwin.pdf
Paper (HTML): 
http://www.usenix.org/events/bsdcon02/full_papers/baldwin/baldwin_html/index.html
  • Log in or register to post comments

© USENIX
EIN 13-3055038

  • Privacy Policy
  • Contact Us