panic upon deleting DDB breakpoint
Andrew Belashov
bel at orel.ru
Mon Apr 25 01:46:36 PDT 2005
Hello, Kris!
Kris Kennaway wrote:
> I did the following on a RELENG_5 machine (in the course of trying to
> track down my errno problem previously reported):
>
> db> break unlink
> db> cont
> [thread pid 57866 tid 100044 ]
> Breakpoint at unlink: save %sp, -0xc0, %sp
> db> delete unlink
> db> cont
> panic: trap: fast data access mmu miss
> cpuid = 0
> KDB: enter: panic
> [thread pid 57866 tid 100044 ]
> Stopped at kdb_enter+0x38: ta %xcc, 1
> db> wh
> Tracing pid 57866 tid 100044 td 0xfffff8003f817400
> panic() at panic+0x19c
> trap() at trap+0x16c
> -- fast data access mmu miss tar=0 %o7=0xc01ab278 --
> unlink() at unlink+0x20
> -- syscall (10, FreeBSD ELF64, unlink) %o7=0x10352c --
> userland() at 0x403a4e68
> user trace: trap %o7=0x10352c
> pc 0x403a4e68, sp 0x7fdffffd5e1
> pc 0x1040d8, sp 0x7fdffffdb21
> pc 0x1013b4, sp 0x7fdffffdbe1
> pc 0x40217414, sp 0x7fdffffdca1
> done
>
> This is repeatable on two machines; I have a coredump.
>
> (kgdb) bt
> #0 doadump () at ../../../kern/kern_shutdown.c:246
> #1 0x00000000c01698b4 in boot (howto=260) at ../../../kern/kern_shutdown.c:409
> #2 0x00000000c0169cc4 in panic (fmt=0xc03ae988 "trap: %s") at ../../../kern/kern_shutdown.c:565
> #3 0x00000000c02e978c in trap (tf=0xee9175c0) at ../../../sparc64/sparc64/trap.c:369
> #4 0x00000000c01d30c4 in unlink (td=0xee917880, uap=0x0) at ../../../kern/vfs_syscalls.c:1585
> #5 0x00000000c01d30b8 in unlink (td=0xee917880, uap=0x0) at ../../../kern/vfs_syscalls.c:1584
> (kgdb) frame 3
> #3 0x00000000c02e978c in trap (tf=0xee9175c0) at ../../../sparc64/sparc64/trap.c:369
> 369 panic("trap: %s", trap_msg[tf->tf_type & ~T_KERNEL]);
> (kgdb) frame 4
> #4 0x00000000c01d30c4 in unlink (td=0xee917880, uap=0x0) at ../../../kern/vfs_syscalls.c:1585
> 1585 error = kern_unlink(td, uap->path, UIO_USERSPACE);
> (kgdb) frame 5
> #5 0x00000000c01d30b8 in unlink (td=0xee917880, uap=0x0) at ../../../kern/vfs_syscalls.c:1584
> 1584 mtx_lock(&Giant);
> (kgdb)
>
> (Take the above with a grain of salt since gdb53 got the stack trace
> wrong).
>
> I didn't yet try other breakpoints. Doing the same thing on i386
> doesn't cause a panic.
Try patch (sparc64_trap.patch) from PR/72998 <http://www.freebsd.org/cgi/query-pr.cgi?pr=sparc64/72998>
Or, probably, somewhere (in KDB code?) it is necessary to insert the FLUSHW instruction.
--
With Best Regards,
Andrew Belashov.
More information about the freebsd-sparc64
mailing list