Message ID | 20100420.005051.40113282.davem@davemloft.net |
---|---|
State | Accepted |
Delegated to: | David Miller |
Headers | show |
On Tue, Apr 20, 2010 at 12:50:51AM -0700, David Miller wrote: > From: David Miller <davem@davemloft.net> > Date: Mon, 19 Apr 2010 22:51:05 -0700 (PDT) > > > I have to think about why I might have done things this way to > > make sure I fix this right. > > Ok, I don't get crashes any more. There are all kinds of issues > with the sw watchdog triggering because cpus get slogged in > the scheduler rebalance code, but that's a seperate set of > issues. I merged your latest sparc tree and the crashes are gone. I'm really happy you've solved this. Thanks a lot for having spent so much time on it! -- To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
From: Frederic Weisbecker <fweisbec@gmail.com> Date: Tue, 20 Apr 2010 15:58:13 +0200 > I merged your latest sparc tree and the crashes are gone. > > I'm really happy you've solved this. Thanks a lot for having spent > so much time on it! Thanks for testing and suffering through this bug hunt :-) -- To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
On Tue, 2010-04-20 at 14:17 -0700, David Miller wrote: > From: Frederic Weisbecker <fweisbec@gmail.com> > Date: Tue, 20 Apr 2010 15:58:13 +0200 > > > I merged your latest sparc tree and the crashes are gone. > > > > I'm really happy you've solved this. Thanks a lot for having spent > > so much time on it! > > Thanks for testing and suffering through this bug hunt :-) Wow, I was having fun reading this CSI report ;-) Good job guys! -- Steve -- To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html
diff --git a/arch/sparc/kernel/rtrap_64.S b/arch/sparc/kernel/rtrap_64.S index 83f1873..090b9e9 100644 --- a/arch/sparc/kernel/rtrap_64.S +++ b/arch/sparc/kernel/rtrap_64.S @@ -130,7 +130,17 @@ rtrap_xcall: nop call trace_hardirqs_on nop - wrpr %l4, %pil + /* Do not actually set the %pil here. We will do that + * below after we clear PSTATE_IE in the %pstate register. + * If we re-enable interrupts here, we can recurse down + * the hardirq stack potentially endlessly, causing a + * stack overflow. + * + * It is tempting to put this test and trace_hardirqs_on + * call at the 'rt_continue' label, but that will not work + * as that path hits unconditionally and we do not want to + * execute this in NMI return paths, for example. + */ #endif rtrap_no_irq_enable: andcc %l1, TSTATE_PRIV, %l3