Date: Sun, 5 Jan 2003 20:54:01 -0600 From: ryan beasley <ryanb@goddamnbastard.org> To: current@freebsd.org Subject: Re: panic: blockable sleep lock (sleep mutex) Giant @ /usr/src/sys/vm/vm_fault.c:206 Message-ID: <20030106025401.GC311@goddamnbastard.org> In-Reply-To: <20030104163145.GT311@goddamnbastard.org> References: <20030104163145.GT311@goddamnbastard.org>
next in thread | previous in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
On Sat, Jan 04, 2003 at 10:31:45AM -0600, ryan beasley wrote:
> Sources are HEAD from Dec 28th, 2002, 04:00 -0600.
> DDB session reprinted below. dmesg at the tail.
OK, I found a way to reproduce this one, but given that it only happens
with a 3rd party module, I'm not necessarily sure where the fault lies.
*boot in multiuser (vesa/miibus/if_dc loaded)*
load module
unload module
<attempt to execute any process>
*panic*
I'm including a GDB capture including traceback and some locking
information. Anyone have any ideas? Is there any other data I should
grab and submit?
(gdb) bt
#0 Debugger (msg=0x12 <Address 0x12 out of bounds>) at atomic.h:260
#1 0xc019a03b in panic (fmt=0x0)
at /home/ryanb/FREDRIK_DP_INV/sys/kern/kern_shutdown.c:503
#2 0xc01bbfff in witness_lock (lock=0xc0301160, flags=8,
file=0xc02ea34e "/usr/src/sys/vm/vm_fault.c", line=206)
at /home/ryanb/FREDRIK_DP_INV/sys/kern/subr_witness.c:508
#3 0xc0190441 in _mtx_lock_flags (m=0xc0300fc0, opts=0,
file=0xc0301160 "À\0170ÀJ¿-ÀJ¿-À", line=206)
at /usr/src/sys/kern/kern_mutex.c:328
#4 0xc0271789 in vm_fault (map=0xc082f000, vaddr=3245330432,
fault_type=1 '\001', fault_flags=0) at /usr/src/sys/vm/vm_fault.c:206
#5 0xc02b6ac1 in trap_pfault (frame=0xca3e27b8, usermode=0, eva=3245332734)
at /usr/src/sys/i386/i386/trap.c:746
#6 0xc02b669d in trap (frame=
{tf_fs = 24, tf_es = -1070268400, tf_ds = -1070596080, tf_edi =
-1070713064, tf_esi = -1070592064, tf_ebp = -901896196, tf_isp = -901896220,
tf_ebx = -1070400984, tf_edx = -1070713064, tf_ecx = -1049634562, tf_eax =
-1049634562, tf_trapno = 12, tf_err = 0, tf_eip = -1071664406, tf_cs = 8,
tf_eflags = 66050, tf_esp = -1070400984, tf_ss = -901896160}) at
/usr/src/sys/i386/i386/trap.c:445
#7 0xc02a7158 in calltrap () at {standard input}:98
#8 0xc01bce28 in enroll (description=0xc02e3718 "vnode interlock",
lock_class=0xc0300fc0)
at /home/ryanb/FREDRIK_DP_INV/sys/kern/subr_witness.c:985
#9 0xc01bbcb5 in witness_init (lock=0xc032fa28)
---Type <return> to continue, or q <return> to quit---
at /home/ryanb/FREDRIK_DP_INV/sys/kern/subr_witness.c:388
#10 0xc0190eb1 in mtx_init (m=0xc02e3718, name=0xc02e3718 "vnode interlock",
type=0x0, opts=0) at /usr/src/sys/kern/kern_mutex.c:940
#11 0xc01ebe6f in getnewvnode (tag=0xc02e56e9 "ufs", mp=0x12, vops=0x12,
vpp=0x12) at /usr/src/sys/kern/vfs_subr.c:1000
#12 0xc025fc6b in ffs_vget (mp=0xc09fdc00, ino=481954, flags=2, vpp=0xca3e2984)
at /usr/src/sys/ufs/ffs/ffs_vfsops.c:1254
#13 0xc026706b in ufs_lookup (ap=0xca3e2ab8)
at /usr/src/sys/ufs/ufs/ufs_lookup.c:601
#14 0xc026d5f8 in ufs_vnoperate (ap=0x0)
at /usr/src/sys/ufs/ufs/ufs_vnops.c:2796
#15 0xc01e2bac in vfs_cache_lookup (ap=0x12) at vnode_if.h:82
#16 0xc026d5f8 in ufs_vnoperate (ap=0x0)
at /usr/src/sys/ufs/ufs/ufs_vnops.c:2796
#17 0xc01e7172 in lookup (ndp=0xca3e2c24) at vnode_if.h:52
#18 0xc01e6b6e in namei (ndp=0xca3e2c24) at /usr/src/sys/kern/vfs_lookup.c:181
#19 0xc01f4152 in stat (td=0xc1266000, uap=0xca3e2d10)
at /usr/src/sys/kern/vfs_syscalls.c:1654
#20 0xc02b714e in syscall (frame=
{tf_fs = 47, tf_es = 47, tf_ds = 47, tf_edi = 135567080, tf_esi =
135655208, tf_ebp = -1077937688, tf_isp = -901894796, tf_ebx = 135567080, tf_edx
= 135564138, tf_ecx = 135655219, tf_eax = 188, tf_trapno = 12, tf_err = 2,
tf_eip = 134954771, tf_cs = 31, tf_eflags = 662, tf_esp = -1077937812, tf_ss =
47})
at /usr/src/sys/i386/i386/trap.c:1033
(gdb)
#2 0xc01bbfff in witness_lock (lock=0xc0301160, flags=8,
file=0xc02ea34e "/usr/src/sys/vm/vm_fault.c", line=206)
at /usr/src/sys/kern/subr_witness.c:508
translating /usr/src/sys/kern/subr_witness.c ->
/home/ryanb/FREDRIK_DP_INV/sys/kern/subr_witness.c
508 panic("blockable sleep lock (%s) %s @ %s:%d (td
%p)",
(gdb) p td
$1 = (struct thread *) 0xc1266000
(gdb) p *lock
$2 = {lo_class = 0xc0300fc0, lo_name = 0xc02dbf4a "Giant",
lo_type = 0xc02dbf4a "Giant", lo_flags = 0xb0000, lo_list = {
tqe_next = 0xc0301120, tqe_prev = 0xc03041f0}, lo_witness = 0xc0330f18}
(gdb) p *td->td_sleeplocks
$3 = {ll_next = 0x0, ll_children = {{li_lock = 0xc0301160,
li_file = 0xc02efb57 "/usr/src/sys/i386/i386/trap.c", li_line = 1025,
li_flags = 131072}, {li_lock = 0xc122a0d8,
li_file = 0xc02ec088 "/usr/src/sys/vm/uma_core.c", li_line = 1335,
li_flags = 131072}, {li_lock = 0xc122a024,
li_file = 0xc02ec088 "/usr/src/sys/vm/uma_core.c", li_line = 1352,
li_flags = 131072}}, ll_count = 1}
(gdb) p *td->td_sleeplocks.ll_children[0].li_lock
$4 = {lo_class = 0xc0300fc0, lo_name = 0xc02dbf4a "Giant",
lo_type = 0xc02dbf4a "Giant", lo_flags = 0xb0000, lo_list = {
tqe_next = 0xc0301120, tqe_prev = 0xc03041f0}, lo_witness = 0xc0330f18}
(gdb) p *td->td_sleeplocks.ll_children[1].li_lock
$5 = {lo_class = 0xc0300fc0, lo_name = 0xc122a000 "PCPU VNODE",
lo_type = 0xc02ec1e8 "UMA cpu", lo_flags = 0x430000, lo_list = {
tqe_next = 0xc122a144, tqe_prev = 0xc122a034}, lo_witness = 0xc0330a18}
(gdb) p *td->td_sleeplocks.ll_children[2].li_lock
$6 = {lo_class = 0xc0300fc0, lo_name = 0xc02e35dc "VNODE",
lo_type = 0xc02ec1df "UMA zone", lo_flags = 0x430000, lo_list = {
tqe_next = 0xc122a0d8, tqe_prev = 0xc03537d0}, lo_witness = 0xc0330a90}
--
ryan beasley <ryanb@goddamnbastard.org>
GPG ID: 0x16EFBD48 http://www.goddamnbastard.org
[-- Attachment #2 --]
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (FreeBSD)
iD8DBQE+GO/JskfdOxbvvUgRAoPwAJ9Dk/ZjimS9C1SaXZ6A+PGhcNdTFQCfeIbr
H+sivPEZnthbML1za3zebRQ=
=knYe
-----END PGP SIGNATURE-----
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20030106025401.GC311>
