Re: spin lock sched lock held for 5 seconds

2003-08-14 Thread John Baldwin

On 08-Aug-2003 Lars Eggert wrote:
 John Baldwin wrote:
 On 01-Aug-2003 Lars Eggert wrote:
 
Hi,

got the following panic overnight running with all debugging options on
(WITNESS, MUTEX_DEBUG, DIAGNOSTIC, INVARIANTS; WITNESS_SKIPSPIN off):

panic: spin lock sched lock held by 0xc658e130 for  5 seconds
cpuid = 0; lapic.id = 
Stack backtrace:
backtrace(c031d030,0,c031c4c5,df0dab8c,100) at backtrace+0x17
panic(c031c4c5,c031c62e,c658e130,c036f160,18b) at panic+0x13d
_mtx_lock_spin(c036f160,2,c031a229,18b,c21b2ab0) at _mtx_lock_spin+0x83
_mtx_lock_spin_flags(c036f160,2,c031a229,18b,df0dac0c) at
_mtx_lock_spin_flags+0xb9
statclock(df0dac00,df0dac44,c02d8a9c,0,c2198d00) at statclock+0x39
rtcintr(0) at rtcintr+0x4f
Xfastunpend8(df0dacb8,c02d1f05,8,608,c0372e60) at Xfastunpend8+0x1c
call_fast_unpend(8,608,c0372e60,ffc00034,0) at call_fast_unpend+0xd
i386_unpend(c036f160,c21b0790,df0dacd0,c01b1ae0,df0dacec) at
i386_unpend+0x8d
cpu_unpend(df0dacec,c01a2534,c036f160,1,c031c2e2) at cpu_unpend+0x2d
critical_exit(c036f160,1,c031c2e2,1bc,1) at critical_exit+0x2d
_mtx_unlock_spin_flags(c036f160,0,c031ac9f,7c,c21b2ab0) at
_mtx_unlock_spin_flags+0xbb
idle_proc(0,df0dad48,c031ab89,312,c21b2ab0) at idle_proc+0xb0
fork_exit(c0199972,0,df0dad48) at fork_exit+0xc3
fork_trampoline() at fork_trampoline+0x1a
--- trap 0x1, eip = 0, esp = 0xdf0dad7c, ebp = 0 ---
Debugger(panic)
timeout stopping cpus
Stopped at  Debugger+0x4f:  xchgl   %ebx,in_Debugger.0
db

The machine is still in ddb, let me know if I can provide additional info.
 
 Try updating to a more recent current.  I recently added some extra
 debugging here that will attempt to better show who owns the lock and
 where it was acquired.
 
 Same panic string, but a different call chain:
 
 spin lock sched lock held by 0xc21b2d10 for  5 seconds
 exclusive spin mutex sched lock r = 0 (0xc036efc0) locked @ 
 /usr/src/sys/kern/kern_mutex.c:512
 panic: spin lock held too long
 cpuid = 3; lapic.id = 0300
 Stack backtrace:
 backtrace(c031ce60,300,c031c305,df0d0c30,100) at backtrace+0x17
 panic(c031c305,c21b2d10,c21b2d10,c036efc0,bc) at panic+0x13d
 _mtx_lock_spin(c036efc0,2,c031a037,bc,c21b2720) at _mtx_lock_spin+0xb4
 _mtx_lock_spin_flags(c036efc0,2,c031a037,bc,c21b2720) at 
 _mtx_lock_spin_flags+0xb9
 hardclock_process(df0d0ca0,df0d0ce4,c02d7062,0,c0390018) at 
 hardclock_process+0x3c
 forwarded_hardclock(0) at forwarded_hardclock+0x11
 Xhardclock(df0d0d10,c01998d7,c036f000,2,c031aaad) at Xhardclock+0x52
 cpu_idle(c036f000,2,c031aaad,5f,c21b2720) at cpu_idle+0x8
 idle_proc(0,df0d0d48,c031a997,30e,0) at idle_proc+0x45
 fork_exit(c0199892,0,df0d0d48) at fork_exit+0xc3
 fork_trampoline() at fork_trampoline+0x8
 --- trap 0x1, eip = 0, esp = 0xdf0d0d7c, ebp = 0 ---
 Debugger(panic)
 timeout stopping cpus
 Stopped at  Debugger+0x4f:  xchgl   %ebx,in_Debugger.0
 db
 
 Machine is still in ddb, in case you'd like me to poke around some more.

do 'show pcpu' for each CPU.  If this is a dual machine, then it might
be rather easy to figure out which CPU you are on ('show pcpu') then do
a 'show pcpu x' of the other CPU, find the it's curthread, and do a
'trace XXX' on it's PID to see where it is at.  That might not work but
it's worth a shot I guess.  Also, you can try 'option ADAPTIVE_MUTEXES'
and see if that helps.

-- 

John Baldwin [EMAIL PROTECTED]http://www.FreeBSD.org/~jhb/
Power Users Use the Power to Serve!  -  http://www.FreeBSD.org/
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to [EMAIL PROTECTED]


Re: spin lock sched lock held for 5 seconds

2003-08-08 Thread Lars Eggert
John Baldwin wrote:
On 01-Aug-2003 Lars Eggert wrote:

Hi,

got the following panic overnight running with all debugging options on
(WITNESS, MUTEX_DEBUG, DIAGNOSTIC, INVARIANTS; WITNESS_SKIPSPIN off):
panic: spin lock sched lock held by 0xc658e130 for  5 seconds
cpuid = 0; lapic.id = 
Stack backtrace:
backtrace(c031d030,0,c031c4c5,df0dab8c,100) at backtrace+0x17
panic(c031c4c5,c031c62e,c658e130,c036f160,18b) at panic+0x13d
_mtx_lock_spin(c036f160,2,c031a229,18b,c21b2ab0) at _mtx_lock_spin+0x83
_mtx_lock_spin_flags(c036f160,2,c031a229,18b,df0dac0c) at
_mtx_lock_spin_flags+0xb9
statclock(df0dac00,df0dac44,c02d8a9c,0,c2198d00) at statclock+0x39
rtcintr(0) at rtcintr+0x4f
Xfastunpend8(df0dacb8,c02d1f05,8,608,c0372e60) at Xfastunpend8+0x1c
call_fast_unpend(8,608,c0372e60,ffc00034,0) at call_fast_unpend+0xd
i386_unpend(c036f160,c21b0790,df0dacd0,c01b1ae0,df0dacec) at
i386_unpend+0x8d
cpu_unpend(df0dacec,c01a2534,c036f160,1,c031c2e2) at cpu_unpend+0x2d
critical_exit(c036f160,1,c031c2e2,1bc,1) at critical_exit+0x2d
_mtx_unlock_spin_flags(c036f160,0,c031ac9f,7c,c21b2ab0) at
_mtx_unlock_spin_flags+0xbb
idle_proc(0,df0dad48,c031ab89,312,c21b2ab0) at idle_proc+0xb0
fork_exit(c0199972,0,df0dad48) at fork_exit+0xc3
fork_trampoline() at fork_trampoline+0x1a
--- trap 0x1, eip = 0, esp = 0xdf0dad7c, ebp = 0 ---
Debugger(panic)
timeout stopping cpus
Stopped at  Debugger+0x4f:  xchgl   %ebx,in_Debugger.0
db
The machine is still in ddb, let me know if I can provide additional info.
Try updating to a more recent current.  I recently added some extra
debugging here that will attempt to better show who owns the lock and
where it was acquired.
Same panic string, but a different call chain:

spin lock sched lock held by 0xc21b2d10 for  5 seconds
exclusive spin mutex sched lock r = 0 (0xc036efc0) locked @ 
/usr/src/sys/kern/kern_mutex.c:512
panic: spin lock held too long
cpuid = 3; lapic.id = 0300
Stack backtrace:
backtrace(c031ce60,300,c031c305,df0d0c30,100) at backtrace+0x17
panic(c031c305,c21b2d10,c21b2d10,c036efc0,bc) at panic+0x13d
_mtx_lock_spin(c036efc0,2,c031a037,bc,c21b2720) at _mtx_lock_spin+0xb4
_mtx_lock_spin_flags(c036efc0,2,c031a037,bc,c21b2720) at 
_mtx_lock_spin_flags+0xb9
hardclock_process(df0d0ca0,df0d0ce4,c02d7062,0,c0390018) at 
hardclock_process+0x3c
forwarded_hardclock(0) at forwarded_hardclock+0x11
Xhardclock(df0d0d10,c01998d7,c036f000,2,c031aaad) at Xhardclock+0x52
cpu_idle(c036f000,2,c031aaad,5f,c21b2720) at cpu_idle+0x8
idle_proc(0,df0d0d48,c031a997,30e,0) at idle_proc+0x45
fork_exit(c0199892,0,df0d0d48) at fork_exit+0xc3
fork_trampoline() at fork_trampoline+0x8
--- trap 0x1, eip = 0, esp = 0xdf0d0d7c, ebp = 0 ---
Debugger(panic)
timeout stopping cpus
Stopped at  Debugger+0x4f:  xchgl   %ebx,in_Debugger.0
db

Machine is still in ddb, in case you'd like me to poke around some more.

Lars
--
Lars Eggert [EMAIL PROTECTED]   USC Information Sciences Institute


smime.p7s
Description: S/MIME Cryptographic Signature


RE: spin lock sched lock held for 5 seconds

2003-08-02 Thread John Baldwin

On 01-Aug-2003 Lars Eggert wrote:
 Hi,
 
 got the following panic overnight running with all debugging options on
 (WITNESS, MUTEX_DEBUG, DIAGNOSTIC, INVARIANTS; WITNESS_SKIPSPIN off):
 
 panic: spin lock sched lock held by 0xc658e130 for  5 seconds
 cpuid = 0; lapic.id = 
 Stack backtrace:
 backtrace(c031d030,0,c031c4c5,df0dab8c,100) at backtrace+0x17
 panic(c031c4c5,c031c62e,c658e130,c036f160,18b) at panic+0x13d
 _mtx_lock_spin(c036f160,2,c031a229,18b,c21b2ab0) at _mtx_lock_spin+0x83
 _mtx_lock_spin_flags(c036f160,2,c031a229,18b,df0dac0c) at
 _mtx_lock_spin_flags+0xb9
 statclock(df0dac00,df0dac44,c02d8a9c,0,c2198d00) at statclock+0x39
 rtcintr(0) at rtcintr+0x4f
 Xfastunpend8(df0dacb8,c02d1f05,8,608,c0372e60) at Xfastunpend8+0x1c
 call_fast_unpend(8,608,c0372e60,ffc00034,0) at call_fast_unpend+0xd
 i386_unpend(c036f160,c21b0790,df0dacd0,c01b1ae0,df0dacec) at
 i386_unpend+0x8d
 cpu_unpend(df0dacec,c01a2534,c036f160,1,c031c2e2) at cpu_unpend+0x2d
 critical_exit(c036f160,1,c031c2e2,1bc,1) at critical_exit+0x2d
 _mtx_unlock_spin_flags(c036f160,0,c031ac9f,7c,c21b2ab0) at
 _mtx_unlock_spin_flags+0xbb
 idle_proc(0,df0dad48,c031ab89,312,c21b2ab0) at idle_proc+0xb0
 fork_exit(c0199972,0,df0dad48) at fork_exit+0xc3
 fork_trampoline() at fork_trampoline+0x1a
 --- trap 0x1, eip = 0, esp = 0xdf0dad7c, ebp = 0 ---
 Debugger(panic)
 timeout stopping cpus
 Stopped at  Debugger+0x4f:  xchgl   %ebx,in_Debugger.0
 db
 
 The machine is still in ddb, let me know if I can provide additional info.

Try updating to a more recent current.  I recently added some extra
debugging here that will attempt to better show who owns the lock and
where it was acquired.

-- 

John Baldwin [EMAIL PROTECTED]http://www.FreeBSD.org/~jhb/
Power Users Use the Power to Serve!  -  http://www.FreeBSD.org/
___
[EMAIL PROTECTED] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-current
To unsubscribe, send any mail to [EMAIL PROTECTED]