login
Header Space

 
 

Re: Linux 2.6.25-rc2

Score:
Previous message: [thread] [date] [author]
Next message: [thread] [date] [author]
To: Pekka Enberg <penberg@...>
Cc: Mathieu Desnoyers <mathieu.desnoyers@...>, Torsten Kaiser <just.for.lkml@...>, Ingo Molnar <mingo@...>, Linux Kernel Mailing List <linux-kernel@...>, Christoph Lameter <clameter@...>
Date: Tuesday, February 19, 2008 - 12:20 pm

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