By Jonathan Corbet
January 26, 2011
The removal of the big kernel lock (BKL) has been on the kernel
community's "to do" list almost since that lock was first added to make the
kernel work on multiprocessor systems. Over time, the significance of the
lock has diminished as finer-grained locking was added to various kernel
subsystems, but the BKL itself has endured. Getting rid of it for good
remained desirable because the BKL can still cause unwanted latencies at
times. There's also a certain amount of pride involved in completing the
job. That completion has been long in coming, though; once the worst
performance issues associated with the BKL were resolved, interest in doing
the low-level work needed to finish the job declined.
Two years or so ago, though, developers started working on BKL removal
again. Some of this work was motivated by the realtime tree, where
patience with latency sources is rather more limited. Still, it seemed
like completion remained a distant goal; hundreds of BKL call sites
remained in the kernel.
Then Arnd Bergmann took on the task of eliminating the BKL entirely. His
cleanup work has been going on for some time; if he has his way, this patch set (or something derived from it)
will remove the BKL entirely in 2.6.39. To get there, about a dozen
modules need to be addressed. Some of them (i830, autofs3, and smbfs) are
simply to be removed. Others (appletalk and hpfs) are to be moved to the
staging tree for near-term removal, though there is some resistance to that
idea. The remaining modules are to be fixed in some way. Once that's taken
care of, the final patch in the series
removes the lock itself. It will not be missed.
(
Log in to post comments)