Re: panic: spin lock held too long (while rebooting)

From: John Baldwin <jhb_at_freebsd.org>
Date: Wed, 4 Jan 2006 08:38:48 -0500
On Wednesday 04 January 2006 02:06 am, Thierry Herbelot wrote:
> I just had this panic, on an SMP machine
>
> Rebooting...
> cpu_reset: Stopping other CPUs
> spin lock sched lock held by 0xc16de480 for > 5 seconds
> panic: spin lock held too long
> cpuid = 0
> KDB: enter: panic
> [thread pid 18843 tid 100041 ]
> Stopped at      kdb_enter+0x2b: nop
> db> trace
> Tracing pid 18843 tid 100041 td 0xc182e600
> kdb_enter(c0880e62) at kdb_enter+0x2b
> panic(c088029b,c094cdf0,c16de480,c0880272,c08803ee) at panic+0x127
> _mtx_lock_spin(c094cdf0,c182e600,2,c087cbfa,cb) at _mtx_lock_spin+0xa9
> _mtx_lock_spin_flags(c094cdf0,2,c087cbfa,cb) at _mtx_lock_spin_flags+0x9e
> hardclock_cpu(0,c09cdb20,0,c72a2ba0,c08069cd) at hardclock_cpu+0x25
> hardclock(0,c0816772) at hardclock+0x13
> lapic_handle_timer(8,28,c16b0028,c16ba00c,0) at lapic_handle_timer+0x71
> Xtimerint() at Xtimerint+0x1e
> --- interrupt, eip = 0xc0816772, esp = 0xc72a2be8, ebp = 0xc72a2c0c ---
> DELAY(f4240) at DELAY+0x92
> cpu_reset(f4240,c0881049,c72a2c64,c0653a0f,0) at cpu_reset+0xc8
> shutdown_reset(0,0,c16ba00c,0,c0880e86) at shutdown_reset+0x1c
> boot(0,c094ce0c,0,c0880e86,a1) at boot+0x553
> reboot(c182e600,c72a2d04,c182e600,0,2) at reboot+0x32
> syscall(3b,3b,3b,0,2) at syscall+0x27e
> Xint0x80_syscall() at Xint0x80_syscall+0x1f
> --- syscall (55, FreeBSD ELF32, reboot), eip = 0x280adc5f, esp =
> 0xbfbfedcc, ebp = 0xbfbfee18 ---

Next time you get this, can you use 'show threads' to figure out the tid for 
the thread whose pointer is in the printf (0xc16de480 in this case) and then 
do a trace of that thread?

-- 
John Baldwin <jhb_at_FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve"  =  http://www.FreeBSD.org
Received on Wed Jan 04 2006 - 12:40:25 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:38:50 UTC