Fast Data Access MMU Miss problem

David Cornejo dave at dogwood.com
Wed Jan 5 02:00:29 GMT 2005


You mean I have to do something besides gripe? :-)

I have pasted in below the results of three crashes - the first two are 
pretty interesting in that they happen in _mtx_lock_sleep() when it 
recurses.  The third blows away the theory that it's that routine.  The 
common thing seems to be locking, but that could just be coincidence.

I suppose I could try gdb on the kernel.  I only have one sparc machine, I 
presume an x86 gdb won't work on this, is there anyway to get a sparc gdb 
built under x86?  I know gdb 6 seems to be messed up when looking at the 
crash dumps, should I try 5.3 on the live kernel also?

thanks,
dave c

========== RUN #0 ==========

[root at sparkle] 23% gdb53 -k /sys/sparc64/compile/ULTRA60/kernel.debug vmcore.0
GNU gdb 5.3 (FreeBSD)
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "sparc64-portbld-freebsd6.0"...
panic: trap: fast data access mmu miss
panic messages:
---
panic: trap: fast data access mmu miss
cpuid = 1
KDB: enter: panic
panic: from debugger
cpuid = 1
KDB: stack backtrace:
panic: from debugger
cpuid = 1
KDB: stack backtrace:
Uptime: 3m9s
Dumping 1280 MB (4 chunks)
   chunk at 0: 536870912 bytes |\^H/\^H
---
#0  doadump () at ../../../kern/kern_shutdown.c:234
234             savectx(&dumppcb);
(kgdb) bt
#0  doadump () at ../../../kern/kern_shutdown.c:234
#1  0x00000000c012ce84 in boot (howto=260) at ../../../kern/kern_shutdown.c:397
#2  0x00000000c012d744 in panic (fmt=0xc02de970 "trap: %s")
     at ../../../kern/kern_shutdown.c:553
#3  0x00000000c02aa87c in trap (tf=0xe9ecb240)
     at ../../../sparc64/sparc64/trap.c:369
#4  0x00000000c0122b40 in _mtx_lock_sleep (m=0x2a, td=0xfffff800a7667560,
     opts=0, file=0x0, line=0) at ../../../kern/kern_mutex.c:525
#5  0x00000000c0122b8c in _mtx_lock_sleep (m=0xfffff80000d2aa48,
     td=0xfffff800a7667560, opts=0, file=0x0, line=0) at atomic.h:278
#6  0x00000000c0104ae8 in fdfree (td=0xfffff800a7667560)
     at ../../../kern/kern_descrip.c:1610
#7  0x00000000c010f2f8 in exit1 (td=0xfffff800a7667560, rv=0)
     at ../../../kern/kern_exit.c:230
#8  0x00000000c0110470 in sys_exit (td=0xfffff800a7667560, uap=0xe9ecb8c0)
     at ../../../kern/kern_exit.c:93
#9  0x00000000c02aad4c in syscall (tf=0xe9ecb880)
     at ../../../sparc64/sparc64/trap.c:592
(kgdb)

========== RUN #1 ==========

[root at sparkle] 25% gdb53 -k /sys/sparc64/compile/ULTRA60/kernel.debug vmcore.1
GNU gdb 5.3 (FreeBSD)
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "sparc64-portbld-freebsd6.0"...
panic: trap: fast data access mmu miss
panic messages:
---
panic: trap: fast data access mmu miss
cpuid = 0
KDB: enter: panic
Uptime: 1h23m28s
Dumping 1280 MB (4 chunks)
   chunk at 0: 536870912 bytes |\^H/\^H
---
#0  doadump () at ../../../kern/kern_shutdown.c:234
234             savectx(&dumppcb);
(kgdb) bt
#0  doadump () at ../../../kern/kern_shutdown.c:234
#1  0x00000000c012ce84 in boot (howto=260) at ../../../kern/kern_shutdown.c:397
#2  0x00000000c012d744 in panic (fmt=0xc02de970 "trap: %s")
     at ../../../kern/kern_shutdown.c:553
#3  0x00000000c02aa87c in trap (tf=0xed143210)
     at ../../../sparc64/sparc64/trap.c:369
#4  0x00000000c0122b40 in _mtx_lock_sleep (m=0x70, td=0xfffff8003b0ef7c0,
can not access 0xffffd55c, invalid address (ffffd55c)
can not access 0xffffd55c, invalid address (ffffd55c)
can not access 0xffffd55c, invalid address (ffffd55c)
can not access 0xffffd55c, invalid address (ffffd55c)
can not access 0xffffd55c, invalid address (ffffd55c)
can not access 0xffffd55c, invalid address (ffffd55c)
     opts=1, file=0x7fdffffd55c <Address 0x7fdffffd55c out of bounds>,
     line=6144) at ../../../kern/kern_mutex.c:525
#5  0x00000000c0122b8c in _mtx_lock_sleep (m=0xfffff8001710f048,
     td=0xfffff8003b0ef7c0, opts=0, file=0x0, line=0) at atomic.h:278
#6  0x00000000c0192cc8 in namei (ndp=0xed1435a0)
     at ../../../kern/vfs_lookup.c:161
#7  0x00000000c01a18cc in stat (td=0xfffff8003b0ef7c0, uap=0xed1438c0)
     at namei.h:157
#8  0x00000000c02aad4c in syscall (tf=0xed143880)
     at ../../../sparc64/sparc64/trap.c:592
(kgdb)

========== RUN #2 ==========

[root at sparkle] 26% gdb53 -k /sys/sparc64/compile/ULTRA60/kernel.debug vmcore.2
GNU gdb 5.3 (FreeBSD)
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "sparc64-portbld-freebsd6.0"...
panic: trap: fast data access mmu miss
panic messages:
---
panic: trap: fast data access mmu miss
cpuid = 0
KDB: enter: panic
Uptime: 17m51s
Dumping 1280 MB (4 chunks)
   chunk at 0: 536870912 bytes |\^H/\^H
---
#0  doadump () at ../../../kern/kern_shutdown.c:234
234             savectx(&dumppcb);
(kgdb) bt
#0  doadump () at ../../../kern/kern_shutdown.c:234
#1  0x00000000c012ce84 in boot (howto=260) at ../../../kern/kern_shutdown.c:397
#2  0x00000000c012d744 in panic (fmt=0xc02de970 "trap: %s")
     at ../../../kern/kern_shutdown.c:553
#3  0x00000000c02aa87c in trap (tf=0xed7db050) at 
../../../sparc64/sparc64/trap.c:369
#4  0x00000000c01991d8 in vref (vp=0x0) at atomic.h:278
#5  0x00000000c0158aa4 in turnstile_lock (lock=0x0) at 
../../../kern/subr_turnstile.c:458
#6  0x00000000c019291c in namei (ndp=0xed7db620) at 
../../../kern/vfs_lookup.c:165
#7  0x00000000c010e068 in kern_execve (td=0xfffff8008057e4c0, 
fname=---Can't read userspace from dump, or kernel process---

) at atomic.h:278
#8  0x00000000c02aad4c in syscall (tf=0xed7db880) at 
../../../sparc64/sparc64/trap.c:592
(kgdb)




More information about the freebsd-sparc64 mailing list