The real BKL end game
For humans, by humansThe 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.Every article on LWN.net is written for humans, by humans. If you've enjoyed this article and want to see more like it, your subscription goes a long way to keeping the slop at bay. We are offering a free one-month trial subscription (no credit card required) to get you started.
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.
| Index entries for this article | |
|---|---|
| Kernel | Big kernel lock |