Re: [announce] "kill the Big Kernel Lock (BKL)" tree

!MAILaRCHIVE_VOTE_RePLACE
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Linus Torvalds <torvalds@...>
Cc: Alan Cox <alan@...>, Andi Kleen <andi@...>, <linux-kernel@...>, Andrew Morton <akpm@...>, Peter Zijlstra <a.p.zijlstra@...>, Thomas Gleixner <tglx@...>, Alexander Viro <viro@...>
Date: Thursday, May 15, 2008 - 4:02 am

* Linus Torvalds <torvalds@linux-foundation.org> wrote:


yeah. And Alan has a good point: there _is_ lots of magic stuff 
happening below the BKL. One of them are the BKL <-> other lock 
dependencies. My stuff helps with mapping that part of the magic: it 
turns the BKL into an ordinary mutex and thus integrates it into 
lockdep's existing dependency validation machinery.

In other words: this stuff makes BKL validation _stronger_, not weaker, 
and hence it ultimately helps its mapping and elimination. It turns the 
"magic" into something more concrete.

It might not help with other magic directly - but it helps indirectly, 
because now the "magic" has shrunk, so there's more attention and more 
resources available to fix it in the places where the magic hurts. (And 
suggestions are welcome for more debug helpers to make more magic more 
visible.)

Whenever someone narrows the BKL's scope, that will always have to be 
done carefully - and that's true of any other lock. This patchset 
(except perhaps the boot bits) does not narrow the BKL's scope.

It will still be no doubt a tough job (reducing/changing locking of 
_any_ locked path is a tough job), but it will now fit into our existing 
practices much better and we'll get various reminders from lockdep and 
the other debug helpers when we forgot about some detail.

Before this there was almost zero feedback from the kernel when 
something around the BKL broke: pretty much the only remainder we had 
from incorrect BKL elimination were subtle breakages.

And my personal experience might matter as well: before this i never 
dared to touch BKL code. I once removed _all_ BKL locking from all the 
kernel _by accident_ [i typoed a single line in lib/smp_lock.c] and ran 
it on my main desktop for about a day and never noticed a thing - until 
a few weird TTY messages popped up in the syslog...

But with this scheme, i felt _much_ more secure about touching BKL code, 
and kicking the BKL from the scheduler was pure joy i have to say. (even 
though it will of course remain in the upstream scheduler until we are 
reasonably sure about the stability of this whole kill-the-BKL approach)

I'm sure other subsystem maintainers will have a similar experience.

	Ingo
--
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]

Messages in current thread:
[announce] "kill the Big Kernel Lock (BKL)" tree, Ingo Molnar, (Wed May 14, 1:49 pm)
Re: [announce] "kill the Big Kernel Lock (BKL)" tree, Linus Torvalds, (Thu May 15, 1:41 pm)
Re: [announce] "kill the Big Kernel Lock (BKL)" tree, Arjan van de Ven, (Thu May 15, 4:27 pm)
Re: [announce] "kill the Big Kernel Lock (BKL)" tree, Peter Zijlstra, (Thu May 15, 4:45 pm)
Re: [announce] "kill the Big Kernel Lock (BKL)" tree, Arjan van de Ven, (Thu May 15, 5:22 pm)
Re: [announce] "kill the Big Kernel Lock (BKL)" tree, Linus Torvalds, (Wed May 14, 2:41 pm)
Re: [announce] "kill the Big Kernel Lock (BKL)" tree, Ingo Molnar, (Wed May 14, 3:41 pm)
Re: [announce] "kill the Big Kernel Lock (BKL)" tree, Frederik Deweerdt, (Wed May 14, 4:05 pm)
Re: [announce] "kill the Big Kernel Lock (BKL)" tree, Andi Kleen, (Wed May 14, 2:30 pm)
Re: [announce] "kill the Big Kernel Lock (BKL)" tree, Andi Kleen, (Wed May 14, 5:13 pm)
Re: [announce] "kill the Big Kernel Lock (BKL)" tree, H. Peter Anvin, (Wed May 14, 5:16 pm)
Re: [announce] "kill the Big Kernel Lock (BKL)" tree, Linus Torvalds, (Wed May 14, 5:45 pm)
Re: [announce] "kill the Big Kernel Lock (BKL)" tree, Andi Kleen, (Wed May 14, 6:03 pm)
Re: [announce] "kill the Big Kernel Lock (BKL)" tree, Andi Kleen, (Thu May 15, 10:27 am)
Re: [announce] "kill the Big Kernel Lock (BKL)" tree, Andi Kleen, (Fri May 16, 6:21 am)
Re: [announce] "kill the Big Kernel Lock (BKL)" tree, Ingo Molnar, (Thu May 15, 4:02 am)
Re: [announce] "kill the Big Kernel Lock (BKL)" tree , Jonathan Corbet, (Wed May 14, 5:45 pm)
Re: [announce] "kill the Big Kernel Lock (BKL)" tree , Jan Engelhardt, (Thu May 15, 4:44 am)
Re: [announce] "kill the Big Kernel Lock (BKL)" tree, Diego Calleja, (Thu May 15, 10:54 am)
Re: [announce] "kill the Big Kernel Lock (BKL)" tree , Linus Torvalds, (Wed May 14, 5:56 pm)
Re: [announce] "kill the Big Kernel Lock (BKL)" tree , Jonathan Corbet, (Wed May 14, 6:07 pm)
Re: [announce] "kill the Big Kernel Lock (BKL)" tree , Linus Torvalds, (Wed May 14, 6:14 pm)
[PATCH, RFC] char dev BKL pushdown , Jonathan Corbet, (Fri May 16, 11:44 am)
Re: [PATCH, RFC] char dev BKL pushdown , Linus Torvalds, (Sat May 17, 5:58 pm)
Re: [PATCH, RFC] char dev BKL pushdown , Jonathan Corbet, (Sun May 18, 4:07 pm)
Re: [PATCH, RFC] char dev BKL pushdown , Linus Torvalds, (Fri May 16, 12:30 pm)
Re: [PATCH, RFC] char dev BKL pushdown , Jonathan Corbet, (Fri May 16, 12:43 pm)
Re: [PATCH, RFC] char dev BKL pushdown, Arnd Bergmann, (Sat May 17, 5:15 pm)
Re: [PATCH, RFC] char dev BKL pushdown , Jonathan Corbet, (Sun May 18, 4:26 pm)
Re: [PATCH, RFC] char dev BKL pushdown, Arnd Bergmann, (Mon May 19, 7:07 pm)
Re: [PATCH, RFC] char dev BKL pushdown , Jonathan Corbet, (Tue May 20, 11:13 am)
Re: [PATCH, RFC] char dev BKL pushdown, Arnd Bergmann, (Tue May 20, 1:21 pm)
Re: [PATCH, RFC] char dev BKL pushdown, Alan Cox, (Tue May 20, 2:51 pm)
[PATCH 1/3, RFC] misc char dev BKL pushdown, Arnd Bergmann, (Mon May 19, 7:26 pm)
Re: [PATCH 1/3, RFC] misc char dev BKL pushdown, Mike Frysinger, (Tue May 20, 7:01 pm)
Re: [PATCH 1/3, RFC] misc char dev BKL pushdown , Jonathan Corbet, (Tue May 20, 7:25 pm)
Re: [PATCH 1/3, RFC] misc char dev BKL pushdown, Mike Frysinger, (Wed May 21, 12:22 pm)
Re: [PATCH 1/3, RFC] misc char dev BKL pushdown, Alan Cox, (Tue May 20, 4:46 am)
Re: [PATCH 1/3, RFC] misc char dev BKL pushdown, Mike Frysinger, (Mon May 19, 8:07 pm)
Re: [PATCH 1/3, RFC] misc char dev BKL pushdown , Jonathan Corbet, (Mon May 19, 8:21 pm)
Re: [PATCH 1/3, RFC] misc char dev BKL pushdown, Mike Frysinger, (Mon May 19, 8:46 pm)
[PATCH 3/3, RFC] remove BKL from misc_open(), Arnd Bergmann, (Mon May 19, 7:34 pm)
Re: [PATCH, RFC] char dev BKL pushdown, Alan Cox, (Fri May 16, 12:22 pm)
Re: [PATCH, RFC] char dev BKL pushdown, Christoph Hellwig, (Fri May 16, 11:49 am)
[PATCH] kill empty chardev open/release methods, Christoph Hellwig, (Fri May 16, 12:03 pm)
Re: [PATCH] kill empty chardev open/release methods , Jonathan Corbet, (Sun May 18, 3:46 pm)
Re: [PATCH] kill empty chardev open/release methods, Alan Cox, (Fri May 16, 12:24 pm)
Re: [announce] "kill the Big Kernel Lock (BKL)" tree, Andi Kleen, (Wed May 14, 6:11 pm)
Re: [announce] "kill the Big Kernel Lock (BKL)" tree, Linus Torvalds, (Wed May 14, 6:16 pm)
Re: [announce] "kill the Big Kernel Lock (BKL)" tree, Andi Kleen, (Wed May 14, 6:21 pm)
Re: [announce] "kill the Big Kernel Lock (BKL)" tree, John Stoffel, (Thu May 15, 11:05 am)
Re: [announce] "kill the Big Kernel Lock (BKL)" tree, Andi Kleen, (Thu May 15, 11:10 am)
Re: [announce] "kill the Big Kernel Lock (BKL)" tree, John Stoffel, (Thu May 15, 11:18 am)
Re: [announce] "kill the Big Kernel Lock (BKL)" tree, Andi Kleen, (Thu May 15, 11:45 am)
Re: [announce] "kill the Big Kernel Lock (BKL)" tree, Kevin Winchester, (Fri May 16, 8:14 pm)
Re: [announce] "kill the Big Kernel Lock (BKL)" tree, Kevin Winchester, (Fri May 16, 8:37 pm)
Re: [announce] "kill the Big Kernel Lock (BKL)" tree, Linus Torvalds, (Wed May 14, 6:11 pm)
Re: [announce] "kill the Big Kernel Lock (BKL)" tree, Andi Kleen, (Wed May 14, 6:15 pm)