From owner-freebsd-current@FreeBSD.ORG Fri Oct 17 03:35:02 2003 Return-Path: Delivered-To: freebsd-current@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id 1DE1C16A4B3 for ; Fri, 17 Oct 2003 03:35:02 -0700 (PDT) Received: from hexagon.stack.nl (hexagon.stack.nl [131.155.140.144]) by mx1.FreeBSD.org (Postfix) with ESMTP id C6F9643F93 for ; Fri, 17 Oct 2003 03:35:00 -0700 (PDT) (envelope-from jilles@stack.nl) Received: from turtle.stack.nl (turtle.stack.nl [2001:610:1108:5010:2e0:81ff:fe22:51d8]) by hexagon.stack.nl (Postfix) with ESMTP id 750B71C20 for ; Fri, 17 Oct 2003 12:34:59 +0200 (CEST) Received: by turtle.stack.nl (Postfix, from userid 1677) id 673751CC71; Fri, 17 Oct 2003 12:34:59 +0200 (CEST) Date: Fri, 17 Oct 2003 12:34:59 +0200 From: Jilles Tjoelker To: freebsd-current@freebsd.org Message-ID: <20031017103459.GA8418@stack.nl> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline User-Agent: Mutt/1.5.4i Subject: panic: pmap_enter: attempted pmap_enter on 4MB page X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 17 Oct 2003 10:35:02 -0000 Hello, Yesterday our 5-CURRENT box panicked with panic: pmap_enter: attempted pmap_enter on 4MB page. uname -a: FreeBSD turtle.stack.nl 5.1-CURRENT FreeBSD 5.1-CURRENT #15: Thu Oct 9 11:43:55 CEST 2003 jilles@turtle.stack.nl:/usr/obj/usr/src/sys/TURTLE i386 This kernel includes a patch from Sam Leffler to /usr/src/sys/netinet6/nd6.c to prevent panics which has been committed now. Beginning of dmesg: Copyright (c) 1992-2003 The FreeBSD Project. Copyright (c) 1979, 1980, 1983, 1986, 1988, 1989, 1991, 1992, 1993, 1994 The Regents of the University of California. All rights reserved. FreeBSD 5.1-CURRENT #15: Thu Oct 9 11:43:55 CEST 2003 jilles@turtle.stack.nl:/usr/obj/usr/src/sys/TURTLE Preloaded elf kernel "/boot/kernel/kernel" at 0xc07e6000. Preloaded elf module "/boot/kernel/acpi.ko" at 0xc07e6294. Timecounter "i8254" frequency 1193182 Hz quality 0 CPU: AMD Athlon(tm) MP 2000+ (1666.74-MHz 686-class CPU) Origin = "AuthenticAMD" Id = 0x662 Stepping = 2 Features=0x383fbff AMD Features=0xc0480000 real memory = 1073217536 (1023 MB) avail memory = 1037123584 (989 MB) Programming 24 pins in IOAPIC #0 IOAPIC #0 intpin 2 -> irq 0 FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs cpu0 (BSP): apic id: 1, version: 0x00040010, at 0xfee00000 cpu1 (AP): apic id: 0, version: 0x00040010, at 0xfee00000 io0 (APIC): apic id: 2, version: 0x00170011, at 0xfec00000 Pentium Pro MTRR support enabled ... gdb output: Script started on Fri Oct 17 11:56:23 2003 # gdb -k kernel.debug.13 vmcore.13 GNU gdb 5.2.1 (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 "i386-undermydesk-freebsd"... panic: pmap_enter: attempted pmap_enter on 4MB page panic messages: --- panic: pmap_enter: attempted pmap_enter on 4MB page cpuid = 1; lapic.id = 00000000 boot() called on cpu#1 syncing disks, buffers remaining... 6552 6552 6552 6552 6552 6552 6552 6552 6552 6552 6552 6552 6552 6552 6552 6552 6552 6552 6552 6552 giving up on 374 buffers Uptime: 3d12h22m57s Dumping 1023 MB 16 32 48 64 80 96 112 128 144 160 176 192 208 224 240 256 272 288 304 320 336 352 368 384 400 416 432 448 464 480 496 512 528 544 560 576 592 608 624 640 656 672 688 704 720 736 752 768 784 800 816 832 848 864 880 896 912 928 944 960 976 992 1008 --- Reading symbols from /usr/obj/usr/src/sys/TURTLE/modules/usr/src/sys/modules/acpi/acpi.ko.debug...done. Loaded symbols for /usr/obj/usr/src/sys/TURTLE/modules/usr/src/sys/modules/acpi/acpi.ko.debug Reading symbols from /usr/obj/usr/src/sys/TURTLE/modules/usr/src/sys/modules/fdescfs/fdescfs.ko.debug...done. Loaded symbols for /usr/obj/usr/src/sys/TURTLE/modules/usr/src/sys/modules/fdescfs/fdescfs.ko.debug Reading symbols from /usr/obj/usr/src/sys/TURTLE/modules/usr/src/sys/modules/linux/linux.ko.debug...done. Loaded symbols for /usr/obj/usr/src/sys/TURTLE/modules/usr/src/sys/modules/linux/linux.ko.debug #0 doadump () at /usr/src/sys/kern/kern_shutdown.c:240 240 dumping++; (kgdb) bt #0 doadump () at /usr/src/sys/kern/kern_shutdown.c:240 #1 0xc04d7041 in boot (howto=256) at /usr/src/sys/kern/kern_shutdown.c:372 #2 0xc04d7498 in panic () at /usr/src/sys/kern/kern_shutdown.c:550 #3 0xc0652014 in pmap_enter (pmap=0xc6d6e98c, va=689672192, m=0xc1a33ba0, prot=5 '\005', wired=0) at /usr/src/sys/i386/i386/pmap.c:1897 #4 0xc0601482 in vm_fault (map=0xc6d6e8dc, vaddr=689672192, fault_type=1 '\001', fault_flags=0) at /usr/src/sys/vm/vm_fault.c:903 #5 0xc0655af5 in trap_pfault (frame=0xe6215d48, usermode=1, eva=689675199) at /usr/src/sys/i386/i386/trap.c:709 #6 0xc0655694 in trap (frame= {tf_fs = 47, tf_es = 47, tf_ds = 47, tf_edi = 134522240, tf_esi = 690202368, tf_ebp = -1077942584, tf_isp = -434021004, tf_ebx = 689329844, tf_edx = 1, tf_ecx = 0, tf_eax = 0, tf_trapno = 12, tf_err = 4, tf_eip = 689675199, tf_cs = 31, tf_eflags = 66050, tf_esp = -1077942628, tf_ss = 47}) at /usr/src/sys/i386/i386/trap.c:317 #7 0xc063d938 in calltrap () at {standard input}:103 ---Can't read userspace from dump, or kernel process--- (kgdb) frame 3 #3 0xc0652014 in pmap_enter (pmap=0xc6d6e98c, va=689672192, m=0xc1a33ba0, prot=5 '\005', wired=0) at /usr/src/sys/i386/i386/pmap.c:1897 1897 panic("pmap_enter: invalid page directory pdir=%#jx, va=%#x\n", (kgdb) l 1892 1893 /* 1894 * Page Directory table entry not valid, we need a new PT page 1895 */ 1896 if (pte == NULL) { 1897 panic("pmap_enter: invalid page directory pdir=%#jx, va=%#x\n", 1898 (uintmax_t)pmap->pm_pdir[PTDPTDI], va); 1899 } 1900 1901 pa = VM_PAGE_TO_PHYS(m) & PG_FRAME; (kgdb) l 1902 origpte = *pte; 1903 opa = origpte & PG_FRAME; 1904 1905 if (origpte & PG_PS) { 1906 /* 1907 * Yes, I know this will truncate upper address bits for PAE, 1908 * but I'm actually more interested in the lower bits 1909 */ 1910 printf("pmap_enter: va %p, pte %p, origpte %p\n", 1911 (void *)va, (void *)pte, (void *)(uintptr_t)origpte); (kgdb) l 1912 panic("pmap_enter: attempted pmap_enter on 4MB page"); 1913 } 1914 1915 /* 1916 * Mapping has not changed, must be protection or wiring change. 1917 */ 1918 if (origpte && (opa == pa)) { 1919 /* 1920 * Wiring change, just update stats. We don't worry about 1921 * wiring PT pages as they remain resident as long as there (kgdb) p va $1 = 689672192 (kgdb) p pte $2 = (pt_entry_t *) 0xbfca46e4 (kgdb) p origpte $3 = 3503345872 (kgdb) p (void *)va $4 = (void *) 0x291b9000 (kgdb) p (void *)origpte $5 = (void *) 0xd0d0d0d0 (kgdb) # # ^D Script done on Fri Oct 17 12:03:23 2003