Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 24 Jun 2005 16:41:24 -0400
From:      John Baldwin <jhb@FreeBSD.org>
To:        freebsd-current@freebsd.org
Cc:        cracauer@cons.org, Warner Losh <imp@bsdimp.com>
Subject:   Re: 6.0-current panic: loading radeon module
Message-ID:  <200506241641.25433.jhb@FreeBSD.org>
In-Reply-To: <20050617.233055.41723867.imp@bsdimp.com>
References:  <20050617173008.A11142@cons.org> <20050617194638.A13394@cons.org> <20050617.233055.41723867.imp@bsdimp.com>

next in thread | previous in thread | raw e-mail | index | archive | help
On Saturday 18 June 2005 01:30 am, Warner Losh wrote:
> From: Martin Cracauer <cracauer@cons.org>
> Subject: Re: 6.0-current panic: loading radeon module
> Date: Fri, 17 Jun 2005 19:46:39 -0400
>
> > Hmmmmm, this doesn't look quite right.  I am probably missing the
> > debug info from within the radeon module.  But since I don't have the
> > base address for the module I'm not sure how to add its symbols when
> > debugging the vmcore.
> >
> > Let me know how useful this is.
> >
> > Martin
> >
> > (kgdb) bt
> > #0  doadump () at pcpu.h:165
> > #1  0xc052db30 in boot (howto=260) at ../../../kern/kern_shutdown.c:397
> > #2  0xc052ddf4 in panic (fmt=0xc06caa94 "from debugger")
> >     at ../../../kern/kern_shutdown.c:553
> > #3  0xc0450711 in db_panic (addr=-1066780860, have_addr=0, count=-1,
> >     modif=0xf5a3d770 "") at ../../../ddb/db_command.c:435
> > #4  0xc04506a8 in db_command (last_cmdp=0xc0737444, cmd_table=0x0,
> >     aux_cmd_tablep=0xc06fcdf4, aux_cmd_tablep_end=0xc06fcdf8)
> >     at ../../../ddb/db_command.c:349
> > #5  0xc0450770 in db_command_loop () at ../../../ddb/db_command.c:455
> > #6  0xc0452305 in db_trap (type=12, code=0) at ../../../ddb/db_main.c:221
> > #7  0xc05462df in kdb_trap (type=12, code=0, tf=0xf5a3d904)
> >     at ../../../kern/subr_kdb.c:471
> > #8  0xc06a5bcb in trap_fatal (frame=0xf5a3d904, eva=3221094400)
> >     at ../../../i386/i386/trap.c:826
> > #9  0xc06a593f in trap_pfault (frame=0xf5a3d904, usermode=0,
> > eva=3221094400) at ../../../i386/i386/trap.c:749
> > #10 0xc06a5561 in trap (frame=
> >       {tf_fs = -1067122680, tf_es = -1056702424, tf_ds = 40, tf_edi =
> > 256, tf_esi = -533393408, tf_ebp = -173811368, tf_isp = -173811408,
> > tf_ebx = 130740224, tf_edx = 1015808, tf_ecx = -134217728, tf_eax =
> > -533393149, tf_trapno = 12, tf_err = 2, tf_eip = -1066780860, tf_cs = 32,
> > tf_eflags = 590470, tf_esp = 0, tf_ss = -137695232}) at
> > ../../../i386/i386/trap.c:439 ---Type <return> to continue, or q <return>
> > to quit---
> > #11 0xc069538a in calltrap () at ../../../i386/i386/exception.s:139
> > #12 0xc0650008 in ufs_setattr (ap=0x0) at
> > ../../../ufs/ufs/ufs_vnops.c:564 #13 0xc069fe39 in
> > nexus_activate_resource (bus=0xc2703d00, child=0xc2821000, type=3,
> > rid=16, r=0xc281dd80) at ../../../i386/i386/nexus.c:419 #14 0xc05436b0 in
> > bus_generic_activate_resource (dev=0x0, child=0xc2821000, type=3, rid=16,
> > r=0xc281dd80) at bus_if.h:290
> > #15 0xc05436b0 in bus_generic_activate_resource (dev=0x0,
> > child=0xc2821000, type=3, rid=16, r=0xc281dd80) at bus_if.h:290
> > #16 0xc05436b0 in bus_generic_activate_resource (dev=0x0,
> > child=0xc2821000, type=3, rid=16, r=0xc281dd80) at bus_if.h:290
> > #17 0xc05436b0 in bus_generic_activate_resource (dev=0x0,
> > child=0xc2821000, type=3, rid=16, r=0xc281dd80) at bus_if.h:290
> > #18 0xc05436b0 in bus_generic_activate_resource (dev=0x0,
> > child=0xc2821000, type=3, rid=16, r=0xc281dd80) at bus_if.h:290
> > #19 0xc04addaa in pci_alloc_resource (dev=0xc2821080, child=0xc2821000,
> >     type=3, rid=0xf5a3db2c, start=0, end=4294967295, count=1, flags=6)
> >     at ../../../dev/pci/pci.c:1753
> > #20 0xc0543a88 in bus_alloc_resource (dev=0x0, type=3, rid=0xf5a3db2c,
> >     start=0, end=4294967295, count=1, flags=6) at bus_if.h:262
> > #21 0xc2b9a273 in ?? ()
>
> This is your problem.  dev == 0 isn't allowed here.  I'm surprised it
> gets as far as it does.  But I'm not entirely sure I believe it
> because dev is supposed to have its parent taken to walk up the tree.
> And there's no way that ufs attr is being called from nexus resource
> manager....

gdb's just confused again.  Note that the dev for pci_alloc_resource() is the 
same as the child for nexus_activate_resource().

line 419 of nexus.c is a call to pmap_mapdev().  We've gotten pmap_mapdev() 
panics at work if the AGP aperture was cranked up a lot (256 MB for example) 
and there wasn't a lot of contiguous KVA available.  That was on 4.x though.

-- 
John Baldwin <jhb@FreeBSD.org>  <><  http://www.FreeBSD.org/~jhb/
"Power Users Use the Power to Serve"  =  http://www.FreeBSD.org



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200506241641.25433.jhb>