page fault in pmap_remove_all
Alan Cox
alan.l.cox at gmail.com
Wed Aug 11 17:49:33 UTC 2010
On Tue, Aug 10, 2010 at 9:43 AM, Oliver Fromme <olli at lurza.secnetix.de>wrote:
> Hi,
>
> This is i386 -current as of 2010-08-04.
> It was building the toolchain for amd64 when it happened.
> I'll keep the vmcore around, so I can dig more into it
> if someone tells me what to do.
>
> GNU gdb 6.1.1 [FreeBSD]
> Copyright 2004 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 "i386-marcel-freebsd"...
>
> Unread portion of the kernel message buffer:
>
>
> Fatal trap 12: page fault while in kernel mode
> fault virtual address = 0x0
> fault code = supervisor write, page not present
> instruction pointer = 0x20:0xc083bc86
> stack pointer = 0x28:0xe50a1a94
> frame pointer = 0x28:0xe50a1ac4
> code segment = base 0x0, limit 0xfffff, type 0x1b
> = DPL 0, pres 1, def32 1, gran 1
> processor eflags = interrupt enabled, resume, IOPL = 0
> current process = 5785 (install)
> trap number = 12
> panic: page fault
> Uptime: 6h13m9s
> Physical memory: 951 MB
> Dumping 182 MB: 167 151 135 119 103 87 71 55 39 23 7
>
> #0 doadump () at pcpu.h:231
> 231 __asm("movl %%fs:0,%0" : "=r" (td));
> (kgdb) list *0xc083bc86
> 0xc083bc86 is in pmap_remove_all (atomic.h:318).
> 313 atomic_readandclear_int(volatile u_int *addr)
> 314 {
> 315 u_int res;
> 316
> 317 res = 0;
> 318 __asm __volatile(
> 319 " xchgl %1,%0 ; "
> 320 "# atomic_readandclear_int"
> 321 : "+r" (res), /* 0 */
> 322 "=m" (*addr) /* 1 */
> (kgdb) backtrace
> #0 doadump () at pcpu.h:231
> #1 0xc05daef0 in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:416
> #2 0xc05db11d in panic (fmt=Variable "fmt" is not available.
> ) at /usr/src/sys/kern/kern_shutdown.c:590
> #3 0xc0840583 in trap_fatal (frame=0xe50a1a54, eva=0)
> at /usr/src/sys/i386/i386/trap.c:945
> #4 0xc08407d0 in trap_pfault (frame=0xe50a1a54, usermode=0, eva=0)
> at /usr/src/sys/i386/i386/trap.c:858
> #5 0xc0840cf3 in trap (frame=0xe50a1a54) at
> /usr/src/sys/i386/i386/trap.c:533
> #6 0xc082ce2c in calltrap () at /usr/src/sys/i386/i386/exception.s:166
> #7 0xc083bc86 in pmap_remove_all (m=0xc150e9e8) at atomic.h:318
> #8 0xc07e9544 in vm_fault (map=0xc38463c0, vaddr=684290048,
> fault_type=1 '\001', fault_flags=Variable "fault_flags" is not
> available.
> ) at /usr/src/sys/vm/vm_fault.c:499
> #9 0xc08406c0 in trap_pfault (frame=0xe50a1d28, usermode=1, eva=684290048)
> at /usr/src/sys/i386/i386/trap.c:837
> #10 0xc0840b5e in trap (frame=0xe50a1d28) at
> /usr/src/sys/i386/i386/trap.c:399
> #11 0xc082ce2c in calltrap () at /usr/src/sys/i386/i386/exception.s:166
> #12 0x0804858c in ?? ()
> Previous frame inner to this frame (corrupt stack?)
> (kgdb)
>
>
If at all possible, I would like to know the value of "pv->pv_va" in
pmap_remove_all().
Regards,
Alan
More information about the freebsd-current
mailing list