I just rolled out -rc5 from netdev + Andrew's debug patch + the HPET patch Thomas pointed me at. I'll let it roast on these 14 machine is production over the weekend to see if we get another panic. I'm attaching the dmesg from this kernel. We're still getting the NMI watchdog warning and the rtc is [still] hosed (I think it was last working around -rc3). -J -- On Fri, Sep 12, 2008 at 11:13:08AM +0200, Ingo Molnar wrote: > > * Andrew Morton wrote: > > > I can't work out who called panic(), nor why. > > > > The panic code called the kexec code which called mutex_trylock() > > which called spin_lock_mutex() which then stupidly went and blurted a > > load of debug stuff because of in_interrupt(). > > agreed - applied your fix in the form below to tip/master - thanks > Andrew. > > J, you might want to try tip/master, it includes all known fixes for > this area and this debug improvement as well. You can pick it up via: > > http://people.redhat.com/mingo/tip.git/README > > Ingo > > ----------> > >From 53b9d87f41a3d8838210ad7cdef02d814817ce85 Mon Sep 17 00:00:00 2001 > From: Andrew Morton > Date: Thu, 11 Sep 2008 17:02:58 -0700 > Subject: [PATCH] lock debug: sit tight when we are already in a panic > > in: > > > http://bugzilla.kernel.org/show_bug.cgi?id=11543 > > The panic code called the kexec code which called mutex_trylock() which > called spin_lock_mutex() which then stupidly went and blurted a load of > debug stuff because of in_interrupt(). > > Keep the lock debug code from escallating an already crappy situation. > > Signed-off-by: Ingo Molnar > --- > include/linux/debug_locks.h | 2 +- > 1 files changed, 1 insertions(+), 1 deletions(-) > > diff --git a/include/linux/debug_locks.h b/include/linux/debug_locks.h > index 4aaa4af..096476f 100644 > --- a/include/linux/debug_locks.h > +++ b/include/linux/debug_locks.h > @@ -17,7 +17,7 @@ extern int debug_locks_off(void); > ({ \ > int __ret = 0; \ > \ > - if (unlikely(c)) { \ > + if (!oops_in_progress && unlikely(c)) { \ > if (debug_locks_off() && !debug_locks_silent) \ > WARN_ON(1); \ > __ret = 1; \