Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 29 Jul 2001 22:18:51 +0200
From:      Sheldon Hearn <sheldonh@starjuice.net>
To:        current@FreeBSD.org
Cc:        jhb@FreeBSD.org
Subject:   Re: Help wanted: loadable SMBFS 
Message-ID:  <1445.996437931@axl.seasidesoftware.co.za>
In-Reply-To: Your message of "Wed, 25 Jul 2001 21:30:49 %2B0200." <872.996089449@axl.seasidesoftware.co.za> 

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

I have an update on this one. (John, lemme know if you want access to
the crashdump).

On Wed, 25 Jul 2001 21:30:49 +0200, Sheldon Hearn wrote:

> >   Log:
> >   Add build infrastructure for a libiconv loadable kernel module.
> >   
> >   This should allow the use of the smbfs module without the
> >   requirement to rebuild the kernel with LIBICONV.
> 
> I haven't connected this to the modules build because I can't test that
> it works.  Sure, it loads fine, but I get a reproducible kernel mode
> page fault in the rl(4) interrupt handler when I actually try to use it.

The kernel mode page fault isn't in the if_rl interrupt handler.  That
was a weird red herring.

It took a while to get a working crashdump.  I would type panic and
press enter, coming right back to the prompt.  If I pressed enter or
typed panic and pressed enter at the prompt, I'd get this:

  panic: Lock (sx) allproc not locked. [...] kern_synch.c:297

Eventually, I got a crashdump as follows:

> panic
> trace
> panic

Weird.  So here's what's actually going wrong for me:

#10 0xc0271480 in trap (frame={tf_fs = 24, tf_es = 16, tf_ds = 16,
      tf_edi = -881182336, tf_esi = -1053397736, tf_ebp = -852845520,
      tf_isp = -852845552, tf_ebx = -1070565552, tf_edx = 0,
      tf_ecx = -881182336, tf_eax = -1070717408, tf_trapno = 12, tf_err = 0,
      tf_eip = -1071939473, tf_cs = 8, tf_eflags = 66071,
      tf_esp = -1053397736, tf_ss = -1054244352})
    at /usr/src/sys/i386/i386/trap.c:410
410                             (void) trap_pfault(&frame, FALSE, eva);
#11 0xc01b806f in witness_destroy (lock=0xc1366d18)
    at /usr/src/sys/kern/subr_witness.c:395
#12 0xc0191b8b in mtx_destroy (m=0xc1366d18)
    at /usr/src/sys/kern/kern_mutex.c:680
#13 0xc134827d in smb_iod_destroy (iod=0xc1366d00)
    at /usr/src/sys/modules/smbfs/../../netsmb/smb_iod.c:692
[...]

Looking inside frame #11...

(kgdb) frame 11
#11 0xc01b806f in witness_destroy (lock=0xc1366d18)
    at /usr/src/sys/kern/subr_witness.c:395
395             STAILQ_REMOVE(&all_locks, lock, lock_object, lo_list);
(kgdb) print *lock->lo_witness
$34 = {w_name = 0xc029dbc6 "(dead)", w_class = 0xc02e0380, w_list = {
    stqe_next = 0xc0307778}, w_typelist = {stqe_next = 0xc0307778},
  w_children = 0x0, w_file = 0xc029dbc6 "(dead)", w_line = 0, w_level = 1,
  w_refcount = 0, w_Giant_squawked = 0 '\000', w_other_squawked = 0 '\000',
  w_same_squawked = 0 '\000'}

I'm absolutely stumped.

Ciao,
Sheldon.

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?1445.996437931>