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                            <[EMAIL PROTECTED]>
GPG ID: 0x16EFBD48                      http://www.goddamnbastard.org           

Attachment: msg49750/pgp00000.pgp
Description: PGP signature

Reply via email to