Messages in this thread | | | Date | Wed, 14 May 2008 14:45:32 -0700 (PDT) | From | Linus Torvalds <> | Subject | Re: [announce] "kill the Big Kernel Lock (BKL)" tree |
| |
On Wed, 14 May 2008, Alan Cox wrote: > > That in itself is a problem Ingo's stuff won't help with: We have lots of > "magic" accidental, undocumented and pot luck BKL locking semantics > between subsystems that are not even visible.
The good news is that I suspect they are going away. It probably is mainly tty and /proc by now, and /proc is pretty close to done.
It's hard to have too many inter-module dependencies when most of the core modules no longer even take the kernel lock any more.
In the VFS layer, we still have
- the ioctl thing, obviously. That's just mind-numbing "move things down", not hard per se. But there's a *lot* of them (and I suspect the huge majority of them don't actually need it, since they'd already be racing against read/write anyway if they did).
- default_llseek(). Probably the same, just a lot less of it.
- superblock read/write.
and the latter one in particular is really dubious (we already have "[un]lock_super()" around it all, I think).
The core kernel, VM and networking already don't really do BKL. And it's seldom the case that subsystems interact with other unrelated subsystems outside of the core areas.
So it's a lot of work, no doubt, but I do think we should be able to do it. The most mind-numbing part is literally all the ioctl crud. There's more ioctl points than there are lock_kernel() calls left anywhere else.
Linus
| |