lkml.org 
[lkml]   [2008]   [May]   [14]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateWed, 14 May 2008 14:45:32 -0700 (PDT)
FromLinus Torvalds <>
SubjectRe: [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


\
 
 \ /
  Last update: 2008-05-14 23:49    [from the cache]
©2003-2008