Re: Linux 2.6.25-rc2

Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
From: Linus Torvalds
Date: Tuesday, February 19, 2008 - 9:20 am

On Tue, 19 Feb 2008, Pekka Enberg wrote:

No, no. The comment says that it's purely there to serialize an 
*interrupt*, and as such, a compiler-only barrier is sufficient (or the 
comment is wrong).

Interrupts are "totally ordered" within a cpu (of course, in theory a CPU 
might have speculative work etc reordering, but the CPU also guarantees 
that interrupt acts _as_if_ it was exact), so a compiler barrier is 
sufficient.

Of course, if we're talking about interrupts on another CPU, that's a 
different issue, but the fact is, in that case it's not about interrupts 
any more (might as well be other code just running normally on another 
CPU), and a barrier doesn't help, it needs real locking.

So that barrier is fine per se. Of course, the whole code (and/or just the 
comment!) may be buggered, but any CPU SMP-aware barriers shouldn't be 
relevant.

What's much more likely to be an issue is simply the fact that since the 
fastpath now accesses the per-cpu freelist without any locking, if there 
is *any* sequence what-so-ever that does it from another CPU and assumes 
the old locking behaviour, the list will be corrupted. And from a quick 
look-through, I certainly cannot guarantee that isn't the case.

There's still a lot of cases that do direct assignments to "c->freelist" 
without using a guaranteed atomic sequence. They *should* be safe if it's 
guaranteed that 
 (a) they always run with interrupts disabled
AND
 (b) 'c' is _always_ the "current CPU" list

but I can't quickly see that guarantee for either.

I'd happily just revert this thing, but it would be really good to have 
confirmation that it seems to matter. But Torsten's partial bisection 
seems to say that the quicklist thing went into -mm before the crash even 
started.

So:
 - it might be something else entirely
 - it might still be the local cmpxchg, just Torsten didn't happen to 
   notice it until later.
 - it might still be the local cmpxchg, but something else changed its 
   patterns to actually make it start triggering.

and in general I don't think we should revert it unless we have stronger 
indications that it really is the problem (eg somebody finds the actual 
bug, or a reporter can confirm that it goes away when the local cmpxchg 
optimization is disabled).

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

Messages in current thread:
Linux 2.6.25-rc2, Linus Torvalds, (Fri Feb 15, 2:23 pm)
Re: Linux 2.6.25-rc2, Rafael J. Wysocki, (Fri Feb 15, 7:08 pm)
[BUG] Linux 2.6.25-rc2 - Kernel Ooops while running dbench, Kamalesh Babulal, (Fri Feb 15, 10:44 pm)
[BUG] Linux 2.6.25-rc2 - Regression from 2.6.24-rc1-git1 s ..., Kamalesh Babulal, (Fri Feb 15, 11:10 pm)
Re: Linux 2.6.25-rc2, Jan Engelhardt, (Sat Feb 16, 9:52 am)
Linux 2.6.25-rc2 regression: LVM cannot find volume group, Tilman Schmidt, (Sat Feb 16, 12:14 pm)
Re: Linux 2.6.25-rc2, Torsten Kaiser, (Sat Feb 16, 2:38 pm)
Re: [BUG] Linux 2.6.25-rc2 - Regression from 2.6.24-rc1-gi ..., Rafael J. Wysocki, (Sun Feb 17, 1:08 pm)
Re: Linux 2.6.25-rc2, Rafael J. Wysocki, (Sun Feb 17, 1:25 pm)
Re: Linux 2.6.25-rc2, Torsten Kaiser, (Sun Feb 17, 2:32 pm)
Re: Linux 2.6.25-rc2, Linus Torvalds, (Mon Feb 18, 4:54 pm)
Re: Linux 2.6.25-rc2 regression: LVM cannot find volume group, Alasdair G Kergon, (Mon Feb 18, 6:53 pm)
Re: Linux 2.6.25-rc2, Ingo Molnar, (Mon Feb 18, 11:11 pm)
Re: Linux 2.6.25-rc2, Torsten Kaiser, (Mon Feb 18, 11:44 pm)
Re: Linux 2.6.25-rc2, Torsten Kaiser, (Mon Feb 18, 11:54 pm)
Re: Linux 2.6.25-rc2, Pekka Enberg, (Tue Feb 19, 12:21 am)
Re: [BUG] Linux 2.6.25-rc2 - Regression from 2.6.24-rc1-gi ..., KAMEZAWA Hiroyuki, (Tue Feb 19, 1:04 am)
Re: [BUG] Linux 2.6.25-rc2 - Regression from 2.6.24-rc1-gi ..., KAMEZAWA Hiroyuki, (Tue Feb 19, 1:47 am)
Re: [BUG] Linux 2.6.25-rc2 - Regression from 2.6.24-rc1-gi ..., KAMEZAWA Hiroyuki, (Tue Feb 19, 2:02 am)
Re: [BUG] Linux 2.6.25-rc2 - Regression from 2.6.24-rc1-gi ..., KAMEZAWA Hiroyuki, (Tue Feb 19, 2:07 am)
Re: Linux 2.6.25-rc2, Ingo Molnar, (Tue Feb 19, 3:27 am)
Re: Linux 2.6.25-rc2, Pekka Enberg, (Tue Feb 19, 3:45 am)
Re: Linux 2.6.25-rc2, Mathieu Desnoyers, (Tue Feb 19, 6:02 am)
Re: Linux 2.6.25-rc2, Ingo Molnar, (Tue Feb 19, 7:00 am)
Re: Linux 2.6.25-rc2, Mathieu Desnoyers, (Tue Feb 19, 7:02 am)
Re: Linux 2.6.25-rc2, Pekka Enberg, (Tue Feb 19, 7:21 am)
Re: Linux 2.6.25-rc2, Pekka Enberg, (Tue Feb 19, 7:38 am)
Re: Linux 2.6.25-rc2, Ingo Molnar, (Tue Feb 19, 7:55 am)
Re: Linux 2.6.25-rc2, Ingo Molnar, (Tue Feb 19, 7:57 am)
Re: Linux 2.6.25-rc2, Pekka Enberg, (Tue Feb 19, 8:52 am)
Re: Linux 2.6.25-rc2, Pekka Enberg, (Tue Feb 19, 8:54 am)
Re: Linux 2.6.25-rc2, Linus Torvalds, (Tue Feb 19, 9:20 am)
Re: Linux 2.6.25-rc2, Eric Dumazet, (Tue Feb 19, 9:27 am)
Re: Linux 2.6.25-rc2, Linus Torvalds, (Tue Feb 19, 9:38 am)
Re: Linux 2.6.25-rc2, Ingo Molnar, (Tue Feb 19, 9:45 am)
Re: Linux 2.6.25-rc2, Ingo Molnar, (Tue Feb 19, 9:48 am)
Re: Linux 2.6.25-rc2, Torsten Kaiser, (Tue Feb 19, 11:39 am)
Re: Linux 2.6.25-rc2, Torsten Kaiser, (Tue Feb 19, 12:27 pm)
Re: Linux 2.6.25-rc2, Mathieu Desnoyers, (Tue Feb 19, 1:03 pm)
Re: Linux 2.6.25-rc2, Mathieu Desnoyers, (Tue Feb 19, 1:08 pm)
Re: Linux 2.6.25-rc2, Zhang, Yanmin, (Tue Feb 19, 5:36 pm)
Re: Linux 2.6.25-rc2, Zhang, Yanmin, (Tue Feb 19, 7:08 pm)
Re: Linux 2.6.25-rc2, Zhang, Yanmin, (Tue Feb 19, 11:53 pm)
Re: Linux 2.6.25-rc2, Pekka Enberg, (Wed Feb 20, 12:10 am)
Re: Linux 2.6.25-rc2, Christoph Lameter, (Wed Feb 27, 4:32 pm)
Re: Linux 2.6.25-rc2, Christoph Lameter, (Wed Feb 27, 4:32 pm)
Re: Linux 2.6.25-rc2, Christoph Lameter, (Wed Feb 27, 4:34 pm)
Re: Linux 2.6.25-rc2, Andrew Morton, (Wed Feb 27, 6:57 pm)
Re: Linux 2.6.25-rc2, Christoph Lameter, (Wed Feb 27, 7:43 pm)
[PATCH] Implement slub fastpath in terms of freebase and f ..., Mathieu Desnoyers, (Wed Feb 27, 10:55 pm)
Re: Linux 2.6.25-rc2, Ingo Molnar, (Thu Feb 28, 1:14 am)
Re: Linux 2.6.25-rc2, Jiri Kosina, (Thu Feb 28, 4:13 am)
Re: Linux 2.6.25-rc2, Alan Cox, (Thu Feb 28, 4:15 am)
Re: [PATCH] Implement slub fastpath in terms of freebase a ..., Christoph Lameter, (Thu Feb 28, 12:08 pm)
Re: [PATCH] Implement slub fastpath in terms of freebase a ..., Mathieu Desnoyers, (Thu Feb 28, 4:25 pm)
Re: [PATCH] Implement slub fastpath in terms of freebase a ..., Christoph Lameter, (Thu Feb 28, 5:57 pm)
Re: [PATCH] Implement slub fastpath in terms of freebase a ..., Mathieu Desnoyers, (Thu Feb 28, 6:56 pm)
Re: [PATCH] Implement slub fastpath in terms of freebase a ..., Christoph Lameter, (Thu Feb 28, 7:12 pm)
Re: [PATCH] Implement slub fastpath in terms of freebase a ..., Mathieu Desnoyers, (Thu Feb 28, 8:32 pm)
Re: [PATCH] Implement slub fastpath in terms of freebase a ..., Christoph Lameter, (Thu Feb 28, 10:11 pm)
Re: [PATCH] Implement slub fastpath in terms of freebase a ..., Mathieu Desnoyers, (Fri Feb 29, 6:03 am)
[PATCH] Slub Freeoffset check overflow, Mathieu Desnoyers, (Fri Feb 29, 6:28 am)
Re: [PATCH] Implement slub fastpath in terms of freebase a ..., Christoph Lameter, (Fri Feb 29, 12:57 pm)
[PATCH] Slub Freeoffset check overflow (updated), Mathieu Desnoyers, (Mon Mar 3, 11:17 pm)
Re: [PATCH] Slub Freeoffset check overflow (updated), Christoph Lameter, (Tue Mar 4, 12:15 am)