“‘As some of the latency junkies on lkml already know, commit
8e3e076 in v2.6.26-rc2 removed the preemptible BKL feature and made
the Big Kernel Lock a spinlock and thus turned it into
non-preemptible code again. This commit returned the BKL code to
the 2.6.7 state of affairs in essence,’ began Ingo Molnar. He noted
that this had a very negative effect on the real time kernel
efforts, adding that Linux creator Linus Torvalds indicated the
only acceptable way forward was to completely remove the BKL. Ingo
explained:“‘This task is not easy at all. 12 years after Linux has been
converted to an SMP OS we still have 1300+ legacy BKL using sites.
There are 400+ lock_kernel() critical sections and 800+ ioctls.
They are spread out across rather difficult areas of often legacy
code that few people understand and few people dare to touch. It
takes top people like Alan Cox to map the semantics and to remove
BKL code, and even for Alan (who is doing this for the TTY code) it
is a long and difficult task…'”