Subject: Strange hang in softintlock on SMP i386
To: None <port-i386@netbsd.org, tech-kern@netbsd.org>
From: Thor Lancelot Simon <tls@rek.tjls.com>
List: tech-kern
Date: 12/17/2005 01:56:57
One of the 4-cpu build machines hung in a very odd way tonight, after
being up and running happily for quite a while.

It won't respond on the network or on the console, though it *will* trap
to DDB.  What's interesting is what the first backtrace looks like any
time I enter DDB (if I exit DDB, it stays hung just like it was before,
though I can reenter DDB at will):

db{0}> trace
cpu_Debugger(842b5200,c,80100010,8f120030,10) at netbsd:cpu_Debugger+0x1
Xintr_ioapic_edge4() at netbsd:Xintr_ioapic_edge4+0x9c
--- interrupt ---
_kernel_lock(42,802c99c0,8f123f18,8010b848,802e6bd0) at
netbsd:_kernel_lock+0xac

x86_softintlock(802e6bd0,802c99c0,7,8f123f38,801b4498) at
netbsd:x86_softintlock
+0x12
DDB lost frame for netbsd:Xsoftserial+0x18, trying 0x8f123f0c
Xsoftserial() at netbsd:Xsoftserial+0x18
--- interrupt ---
Bad frame pointer: 0x84784c00
0x84771d00:

Does this ring a bell for anyone?  The soft interrupt code and the
MP serial locking code make my head hurt.

-- 
 Thor Lancelot Simon	                                      tls@rek.tjls.com

"The inconsistency is startling, though admittedly, if consistency is to be
 abandoned or transcended, there is no problem."		- Noam Chomsky