Date: Thu, 9 Mar 2000 21:23:55 -0800 From: Alfred Perlstein <bright@wintelcom.net> To: John Ryan <jryan@kgv.edu.hk> Cc: freebsd-questions@FreeBSD.ORG Subject: Re: Panic when mounting a CDrom (fwd) Message-ID: <20000309212355.Y14279@fw.wintelcom.net> In-Reply-To: <Pine.BSF.4.10.10003101208390.88503-100000@student.kgv.edu.hk>; from jryan@kgv.edu.hk on Fri, Mar 10, 2000 at 12:19:59PM %2B0800 References: <20000309202241.W14279@fw.wintelcom.net> <Pine.BSF.4.10.10003101208390.88503-100000@student.kgv.edu.hk>
next in thread | previous in thread | raw e-mail | index | archive | help
* John Ryan <jryan@kgv.edu.hk> [000309 20:52] wrote:
> On Thu, 9 Mar 2000, Alfred Perlstein wrote:
>
> > * John Ryan <jryan@kgv.edu.hk> [000309 19:50] wrote:
> > > Whenever I mount a CDRom on my system, it panics. I have a debug kernel
> > > and below is some of the output from kgdb.
> > >
> > > I found a FAQ that says if you get this, increase NMBCLUSTERS, but the
> > > output from netstat -m looks like:
> >
> > NMBCLUSTERS is only useful when one panics as a result of massive amounts
> > of network traffic. Also, you need to mention what version of FreeBSD you
> > are using, I assume 3-something because that's what matches the traceback
> > best.
>
> Sorry, FreeBSD 3.4STABLE - output of uname -a:
> FreeBSD student.kgv.edu.hk 3.4-STABLE FreeBSD 3.4-STABLE #12: Fri Mar 3 08:55:53 CST 2000 root@student.kgv.edu.hk:/usr/src/sys/compile/STUDENT i386
>
> >
> > ...
> > > panicstr: kmem_malloc(-943165440): kmem_map too small: 12419072 total allocated
> > > panic messages:
> > > ---
> > > panic: kmem_malloc(-943165440): kmem_map too small: 12419072 total allocated
> > > mp_lock = 00000001; cpuid = 0; lapic.id = 00000000
> > > boot() called on cpu#0
> >
> > ...
> >
> > > #1 0xc0143af7 in panic (
> > > fmt=0xc02442f6 "kmem_malloc(%d): kmem_map too small: %d total allocated")
> > > at ../../kern/kern_shutdown.c:446
> > > #2 0xc01e94fb in kmem_malloc (map=0xc02710c8, size=3351801856, waitflag=0)
> > > at ../../vm/vm_kern.c:302
> > > #3 0xc01406dc in malloc (size=3351799944, type=0xc0257b8c, flags=0)
> > > at ../../kern/kern_malloc.c:157
> > > #4 0xc01692d7 in vfs_hang_addrlist (mp=0xc14fc600, nep=0xc0f46c20,
> > > argp=0xc9026d18) at ../../kern/vfs_subr.c:2211
> > > #5 0xc01694fe in vfs_export (mp=0xc14fc600, nep=0xc0f46c20, argp=0xc9026d18)
> > > at ../../kern/vfs_subr.c:2312
> > > #6 0xc01311d4 in cd9660_mount (mp=0xc14fc600, path=0x808f090 "/cdrom",
> > > data=0xbfbfd720 "", ndp=0xc9026eb8, p=0xc8fe0de0)
> > > at ../../isofs/cd9660/cd9660_vfsops.c:213
> > > #7 0xc016a35a in mount (p=0xc8fe0de0, uap=0xc9026f94)
> > > at ../../kern/vfs_syscalls.c:305
> > > #8 0xc021589f in syscall (frame={tf_es = 39, tf_ds = 39, tf_edi = 0,
> > > tf_esi = 0, tf_ebp = -1077946444, tf_isp = -922587164, tf_ebx = 0,
> > > tf_edx = -1077946460, tf_ecx = -1077945356, tf_eax = 21, tf_trapno = 12,
> > > tf_err = 2, tf_eip = 134541012, tf_cs = 31, tf_eflags = 662,
> > > tf_esp = -1077946628, tf_ss = 39}) at ../../i386/i386/trap.c:1100
> > > #9 0xc02022ec in Xint0x80_syscall ()
> > > #10 0x804963c in ?? ()
> > > ---Type <return> to continue, or q <return> to quit---
> > > #11 0xbfbfdfcc in ?? ()
> > > #12 0x80484e5 in ?? ()
> > > #13 0x80480e9 in ?? ()
> > > (kgdb) up 6
> > > #6 0xc01311d4 in cd9660_mount (mp=0xc14fc600, path=0x808f090 "/cdrom",
> > > data=0xbfbfd720 "", ndp=0xc9026eb8, p=0xc8fe0de0)
> > > at ../../isofs/cd9660/cd9660_vfsops.c:213
> > > 213 return (vfs_export(mp, &imp->im_export, &args.export));
> > > (kgdb) quit
> >
> > It looks like mount is passing in an invalid mount structure to the
> > kernel, is your userland and kernel in sync? If so can you please show
> > me the output of
>
> I've tried a couple of times to fix this. It used to be okay at 3.3, but
> I did a make update, followed a make world, then rebuilt and installed the
> kernel. Everything should be in sync.
>
> >
> > print args
> >
> > in the 6'th stack frame?
>
> (kgdb) up 6
> #6 0xc01311d4 in cd9660_mount (mp=0xc14fc600, path=0x808f090 "/cdrom",
> data=0xbfbfd720 "", ndp=0xc9026eb8, p=0xc8fe0de0)
> at ../../isofs/cd9660/cd9660_vfsops.c:213
> 213 return (vfs_export(mp, &imp->im_export, &args.export));
> (kgdb) print args
> $1 = {fspec = 0x0, export = {ex_flags = 256, ex_root = 3217020732, ex_anon = {
> cr_ref = 1, cr_uid = 0, cr_ngroups = 8, cr_groups = {0, 2, 3, 4, 5, 20,
> 31, 104, 0, 0, 0, 0, 0, 0, 0, 0, 3217020836, 16, 3217020820, 16, 0,
> 3217022016, 3217022023, 528, 255, 0, 0, 528, 266, 0, 0, 3217022196,
> 134518332, 134803552, 134803520, 256, 3217021864, 134803600, 6,
> 3217021940, 4, 134820000, 3217022460, 9, 6, 1, 0, 3217020960,
> 134803600, 134803520, 134803552, 134618216, 134681248, 3, 134803584,
> 256, 1, 134781187, 134781187, 0, 131072, 134778620, 0, 0}},
> ex_addr = 0xbfbfddfc, ex_addrlen = -1077946292, ex_mask = 0xbfbfd850,
> ex_masklen = 134778620, ex_indexfile = 0x80898d0 ""}, flags = 134547011,
> ssector = 5}
> (kgdb) quit
>
> >
> > what's in your /etc/export?
>
> /cdrom -maproot=0 -network 10.1.0.0
I can't reproduce this, it would be smart of the kernel to maybe check
the sanity of the values passed in:
ex_addrlen = -1077946292 ex_masklen = 134778620
Seems pretty wrong, can you please file a PR about this? I'll assign it
to myself.
--
-Alfred Perlstein - [bright@wintelcom.net|alfred@freebsd.org]
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20000309212355.Y14279>
