page fault in pmap_remove_all
Oliver Fromme
olli at lurza.secnetix.de
Wed Aug 11 17:45:27 UTC 2010
Alan Cox wrote:
> 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().
Sure.
(kgdb) print /x pv->pv_va
$1 = 0x28c89000
Best regards
Oliver
--
Oliver Fromme, secnetix GmbH & Co. KG, Marktplatz 29, 85567 Grafing b. M.
Handelsregister: Registergericht Muenchen, HRA 74606, Geschäftsfuehrung:
secnetix Verwaltungsgesellsch. mbH, Handelsregister: Registergericht Mün-
chen, HRB 125758, Geschäftsführer: Maik Bachmann, Olaf Erb, Ralf Gebhart
FreeBSD-Dienstleistungen, -Produkte und mehr: http://www.secnetix.de/bsd
'Instead of asking why a piece of software is using "1970s technology,"
start asking why software is ignoring 30 years of accumulated wisdom.'
More information about the freebsd-current
mailing list