Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 23 Apr 2002 23:50:16 -0700 (PDT)
From:      Matthew Jacob <mjacob@feral.com>
To:        John Baldwin <jhb@FreeBSD.ORG>
Cc:        hackers@FreeBSD.ORG
Subject:   mutex owned stuff fallible?
Message-ID:  <Pine.BSF.4.21.0204232346060.29290-100000@beppo>

next in thread | raw e-mail | index | archive | help

This is a recent i386 SMP kernel:


panic: mutex isp not owned at ../../../kern/kern_synch.c:449
cpuid = 0; lapic.id = 00000000
Debugger("panic")
Stopped at      Debugger+0x41:  xorl    %eax,%eax
db>
db> t
Debugger(c031189a) at Debugger+0x41
panic(c0310ae8,c030470d,c0312018,1c1,d2d08438) at panic+0xd8
_mtx_assert(d2d0843c,9,c0312018,1c1,69) at _mtx_assert+0x59
msleep(d2d08438,d2d0843c,4c,c0301260,7d0) at msleep+0x157
isp_mboxcmd(d2d08400,d2d19c04,f,d07dee8,0) at isp_mboxcmd+0x19c
isp_fw_state(d2d08400,d2d19c54,d2d08400,d2d09000,d2d08400) at
isp_fw_state+0x2b
isp_fclink_test(d2d08400,1e8480,d2d08400,d2d09000,d2d0843c) at
isp_fclink_test+0x5d
isp_control(d2d08400,4,d2d19d18) at isp_control+0x28b
isp_kthread(d2d08400,d2d19d48,d2d02a3c,c017b25c,0) at isp_kthread+0x6d
fork_exit(c017b25c,d2d08400,d2d19d48) at fork_exit+0x88
fork_trampoline() at fork_trampoline+0x37


Examination of the code path shows to me that this has been what it has been
for months- isp_lock is grabbed at the top of isp_kthread- various cv_wait &&
msleeps *should* assure it's still grabbed at the point in time it calls the
inline isp_fc_runstate which then calls isp_control...isp_mboxcmd...where
isp_mboxcmd calls msleep with isp_lock as the (should be still
owned) argument.

WTF, O?

-matt



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-hackers" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.BSF.4.21.0204232346060.29290-100000>