panic: spin lock held too long (while rebooting)

John Baldwin jhb at freebsd.org
Wed Jan 4 05:40:25 PST 2006


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


More information about the freebsd-current mailing list