Skip site navigation (1)Skip section navigation (2)
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>