Messages in this thread | | | Date | Wed, 7 May 2008 09:35:49 -0700 (PDT) | From | Linus Torvalds <> | Subject | Re: AIM7 40% regression with 2.6.26-rc1 |
| |
On Wed, 7 May 2008, Ingo Molnar wrote: > > I think it is far more likely that it's due to the different scheduling > and wakeup behavior of the new kernel/semaphore.c code. So the fix would > be to restore the old scheduling behavior - that's what Yanmin's manual > revert did and that's what got him back the previous AIM7 performance.
Yes, Yanmin's manual revert got rid of the new semaphores entirely. Which was what, 7500 lines of code removed that got reverted.
And the *WHOLE* and *ONLY* excuse for dropping the spinlock lock_kernel was this (and I quote your message):
remove the !PREEMPT_BKL code.
this removes 160 lines of legacy code.
in other words, your only stated valid reason for getting rid of the spinlock was 160 lines, and the comment didn't even match what it did (it removed the spinlocks entirely, not just the preemptible version).
In contrast, the revert adds 7500 lines. If you go by the only documented reason for the crap that is the current BKL, then I know which one I'll take. I'll take the spinlock back, and I'd rather put preemption back than ever take those semaphores.
And even that's ignoring another issue: did anybody ever even do that AIM7 benchmark comparing spinlocks to the semaphore-BKL? It's quite possible that the semaphores (even the well-behaved ones) behaved worse than the spinlocks.
Linus
| |