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

--bJBxXK1kQfYiHILX
Content-Type: text/plain; charset=unknown-8bit
Content-Disposition: inline
Content-Transfer-Encoding: quoted-printable

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=3D0x12 <Address 0x12 out of bounds>) at atomic.h:260
#1  0xc019a03b in panic (fmt=3D0x0)
    at /home/ryanb/FREDRIK_DP_INV/sys/kern/kern_shutdown.c:503
#2  0xc01bbfff in witness_lock (lock=3D0xc0301160, flags=3D8,
    file=3D0xc02ea34e "/usr/src/sys/vm/vm_fault.c", line=3D206)
    at /home/ryanb/FREDRIK_DP_INV/sys/kern/subr_witness.c:508
#3  0xc0190441 in _mtx_lock_flags (m=3D0xc0300fc0, opts=3D0,
    file=3D0xc0301160 "=C0\0170=C0J=BF-=C0J=BF-=C0", line=3D206)
    at /usr/src/sys/kern/kern_mutex.c:328
#4  0xc0271789 in vm_fault (map=3D0xc082f000, vaddr=3D3245330432,
    fault_type=3D1 '\001', fault_flags=3D0) at /usr/src/sys/vm/vm_fault.c:2=
06
#5  0xc02b6ac1 in trap_pfault (frame=3D0xca3e27b8, usermode=3D0, eva=3D3245=
332734)
    at /usr/src/sys/i386/i386/trap.c:746
#6  0xc02b669d in trap (frame=3D
      {tf_fs =3D 24, tf_es =3D -1070268400, tf_ds =3D -1070596080, tf_edi =
=3D
-1070713064, tf_esi =3D -1070592064, tf_ebp =3D -901896196, tf_isp =3D -901=
896220,
tf_ebx =3D -1070400984, tf_edx =3D -1070713064, tf_ecx =3D -1049634562, tf_=
eax =3D
-1049634562, tf_trapno =3D 12, tf_err =3D 0, tf_eip =3D -1071664406, tf_cs =
=3D 8,
tf_eflags =3D 66050, tf_esp =3D -1070400984, tf_ss =3D -901896160}) at
/usr/src/sys/i386/i386/trap.c:445
#7  0xc02a7158 in calltrap () at {standard input}:98
#8  0xc01bce28 in enroll (description=3D0xc02e3718 "vnode interlock",
    lock_class=3D0xc0300fc0)
    at /home/ryanb/FREDRIK_DP_INV/sys/kern/subr_witness.c:985
#9  0xc01bbcb5 in witness_init (lock=3D0xc032fa28)
---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=3D0xc02e3718, name=3D0xc02e3718 "vnode interl=
ock",
    type=3D0x0, opts=3D0) at /usr/src/sys/kern/kern_mutex.c:940
#11 0xc01ebe6f in getnewvnode (tag=3D0xc02e56e9 "ufs", mp=3D0x12, vops=3D0x=
12,
    vpp=3D0x12) at /usr/src/sys/kern/vfs_subr.c:1000
#12 0xc025fc6b in ffs_vget (mp=3D0xc09fdc00, ino=3D481954, flags=3D2, vpp=
=3D0xca3e2984)
    at /usr/src/sys/ufs/ffs/ffs_vfsops.c:1254
#13 0xc026706b in ufs_lookup (ap=3D0xca3e2ab8)
    at /usr/src/sys/ufs/ufs/ufs_lookup.c:601
#14 0xc026d5f8 in ufs_vnoperate (ap=3D0x0)
    at /usr/src/sys/ufs/ufs/ufs_vnops.c:2796
#15 0xc01e2bac in vfs_cache_lookup (ap=3D0x12) at vnode_if.h:82
#16 0xc026d5f8 in ufs_vnoperate (ap=3D0x0)
    at /usr/src/sys/ufs/ufs/ufs_vnops.c:2796
#17 0xc01e7172 in lookup (ndp=3D0xca3e2c24) at vnode_if.h:52
#18 0xc01e6b6e in namei (ndp=3D0xca3e2c24) at /usr/src/sys/kern/vfs_lookup.=
c:181
#19 0xc01f4152 in stat (td=3D0xc1266000, uap=3D0xca3e2d10)
    at /usr/src/sys/kern/vfs_syscalls.c:1654
#20 0xc02b714e in syscall (frame=3D
      {tf_fs =3D 47, tf_es =3D 47, tf_ds =3D 47, tf_edi =3D 135567080, tf_e=
si =3D
135655208, tf_ebp =3D -1077937688, tf_isp =3D -901894796, tf_ebx =3D 135567=
080, tf_edx
=3D 135564138, tf_ecx =3D 135655219, tf_eax =3D 188, tf_trapno =3D 12, tf_e=
rr =3D 2,
tf_eip =3D 134954771, tf_cs =3D 31, tf_eflags =3D 662, tf_esp =3D -10779378=
12, tf_ss =3D
47})
    at /usr/src/sys/i386/i386/trap.c:1033

(gdb)=20
#2  0xc01bbfff in witness_lock (lock=3D0xc0301160, flags=3D8,
    file=3D0xc02ea34e "/usr/src/sys/vm/vm_fault.c", line=3D206)
    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 =3D (struct thread *) 0xc1266000
(gdb) p *lock
$2 =3D {lo_class =3D 0xc0300fc0, lo_name =3D 0xc02dbf4a "Giant",
  lo_type =3D 0xc02dbf4a "Giant", lo_flags =3D 0xb0000, lo_list =3D {
    tqe_next =3D 0xc0301120, tqe_prev =3D 0xc03041f0}, lo_witness =3D 0xc03=
30f18}
(gdb) p *td->td_sleeplocks
$3 =3D {ll_next =3D 0x0, ll_children =3D {{li_lock =3D 0xc0301160,
      li_file =3D 0xc02efb57 "/usr/src/sys/i386/i386/trap.c", li_line =3D 1=
025,
      li_flags =3D 131072}, {li_lock =3D 0xc122a0d8,
      li_file =3D 0xc02ec088 "/usr/src/sys/vm/uma_core.c", li_line =3D 1335,
      li_flags =3D 131072}, {li_lock =3D 0xc122a024,
      li_file =3D 0xc02ec088 "/usr/src/sys/vm/uma_core.c", li_line =3D 1352,
      li_flags =3D 131072}}, ll_count =3D 1}
(gdb) p *td->td_sleeplocks.ll_children[0].li_lock
$4 =3D {lo_class =3D 0xc0300fc0, lo_name =3D 0xc02dbf4a "Giant",
  lo_type =3D 0xc02dbf4a "Giant", lo_flags =3D 0xb0000, lo_list =3D {
    tqe_next =3D 0xc0301120, tqe_prev =3D 0xc03041f0}, lo_witness =3D 0xc03=
30f18}
(gdb) p *td->td_sleeplocks.ll_children[1].li_lock
$5 =3D {lo_class =3D 0xc0300fc0, lo_name =3D 0xc122a000 "PCPU VNODE",
  lo_type =3D 0xc02ec1e8 "UMA cpu", lo_flags =3D 0x430000, lo_list =3D {
    tqe_next =3D 0xc122a144, tqe_prev =3D 0xc122a034}, lo_witness =3D 0xc03=
30a18}
(gdb) p *td->td_sleeplocks.ll_children[2].li_lock
$6 =3D {lo_class =3D 0xc0300fc0, lo_name =3D 0xc02e35dc "VNODE",
  lo_type =3D 0xc02ec1df "UMA zone", lo_flags =3D 0x430000, lo_list =3D {
    tqe_next =3D 0xc122a0d8, tqe_prev =3D 0xc03537d0}, lo_witness =3D 0xc03=
30a90}

--=20
ryan beasley				<ryanb@goddamnbastard.org>
GPG ID: 0x16EFBD48			http://www.goddamnbastard.org	=09

--bJBxXK1kQfYiHILX
Content-Type: application/pgp-signature
Content-Disposition: inline

-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.0.7 (FreeBSD)

iD8DBQE+GO/JskfdOxbvvUgRAoPwAJ9Dk/ZjimS9C1SaXZ6A+PGhcNdTFQCfeIbr
H+sivPEZnthbML1za3zebRQ=
=knYe
-----END PGP SIGNATURE-----

--bJBxXK1kQfYiHILX--

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?20030106025401.GC311>