Date: Sun, 30 Jun 2002 13:43:36 -0700 (PDT) From: Matthew Dillon <dillon@apollo.backplane.com> To: Julian Elischer <julian@elischer.org> Cc: Steve Kargl <sgk@troutmask.apl.washington.edu>, walt <wa1ter@hotmail.com>, freebsd-current@FreeBSD.ORG Subject: KSE / interrupt panic Message-ID: <200206302043.g5UKha9t006418@apollo.backplane.com> References: <Pine.BSF.4.21.0206301316120.86477-100000@InterJet.elischer.org>
next in thread | previous in thread | raw e-mail | index | archive | help
Got another one. Different panic, same place. panic: setrunqueue: bad thread state cpuid = 0; lapic.id = 01000000 Debugger("panic") Stopped at Debugger+0x46: xchgl %ebx,in_Debugger.0 db> trace Debugger(c02ec2ba) at Debugger+0x46 panic(c02ec8a9,c6461d80,c6461d80,c6461d80,c01afa30) at panic+0xd6 setrunqueue(c6461d80) at setrunqueue+0x1dd cv_timedwait_end(c6461d80) at cv_timedwait_end+0x36 softclock(0) at softclock+0x159 ithread_loop(c229c700,df3eed48,c22aec00,c01b9c6c,0) at ithread_loop+0x12c fork_exit(c01b9c6c,c229c700,df3eed48) at fork_exit+0xa8 fork_trampoline() at fork_trampoline+0x37 db> gdb ... #0 Debugger (msg=0xc02ec2ba "panic") at /FreeBSD/FreeBSD-current/src/sys/i386/i386/db_interface.c:324 #1 0xc01c878a in panic (fmt=0xc02ec8a9 "setrunqueue: bad thread state") at /FreeBSD/FreeBSD-current/src/sys/kern/kern_shutdown.c:482 #2 0xc01cc6cd in setrunqueue (td=0xc6461d80) at /FreeBSD/FreeBSD-current/src/sys/kern/kern_switch.c:396 #3 0xc01afa66 in cv_timedwait_end (arg=0xc6461d80) at /FreeBSD/FreeBSD-current/src/sys/kern/kern_condvar.c:608 #4 0xc01d22c9 in softclock (dummy=0x0) at /FreeBSD/FreeBSD-current/src/sys/kern/kern_timeout.c:187 #5 0xc01b9d98 in ithread_loop (arg=0xc229c700) at /FreeBSD/FreeBSD-current/src/sys/kern/kern_intr.c:535 #6 0xc01b923c in fork_exit (callout=0xc01b9c6c <ithread_loop>, arg=0xc229c700, frame=0xdf3eed48) at /FreeBSD/FreeBSD-current/src/sys/kern/kern_fork.c:863 I'm not sure why the panic was 'bad thread state' when gdb seems to show it being stuck on 'unexpected ke present'. Maybe it was an optimization and gdb is confused. The panic is definitely 'bad thread state'. (gdb) print td->td_state $2 = TDS_RUNQ setrunqueue() is being called on a thread which is already on the run queue. -Matt To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-current" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200206302043.g5UKha9t006418>