Re: panic: invalid PDPE on recend amd64
On Sun, Nov 7, 2010 at 3:28 AM, Alan Cox a...@rice.edu wrote: This is a different type of BIOS misconfiguration than your machine had. I'm attaching a possible patch for this one. Sorry for replying late. This patch works for me. The source tree was cvsup on Sunday before previous mail. Thank you! Jia-Shiun. ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org
Re: panic: invalid PDPE on recend amd64
Hi, I got a similar panic on amd64. Looking into the source it hit KASSERT((base (len - 1))) in pmap_demote_DMAP(). I replaced it with a printf to see what triggered the assertion and here is the output. Combined with memcontrol output 'bogus' keyword it seems buggy BIOS violated some kind of spec and caused this. Is it fatal? It looks fine on my machine without the assertion. ---8--boot message -8 mem: memory base 0xfffdc000 len 0x0002 base 0xc000 len 0x4000 base 0x len 0x8000 base 0x8000 len 0x4000 base 0xbff0 len 0x0010 base 0x0001 len 0x4000 null: null device, zero device ---8--memcontrol output -8 r...@jsli-nb:~ # memcontrol list 0x0/0x1 BIOS write-back fixed-base fixed-length set-by-firmware active 0x1/0x1 BIOS write-back fixed-base fixed-length set-by-firmware active 0x2/0x1 BIOS write-back fixed-base fixed-length set-by-firmware active 0x3/0x1 BIOS write-back fixed-base fixed-length set-by-firmware active 0x4/0x1 BIOS write-back fixed-base fixed-length set-by-firmware active 0x5/0x1 BIOS write-back fixed-base fixed-length set-by-firmware active 0x6/0x1 BIOS write-back fixed-base fixed-length set-by-firmware active 0x7/0x1 BIOS write-back fixed-base fixed-length set-by-firmware active 0x8/0x4000 BIOS write-back fixed-base fixed-length set-by-firmware active 0x84000/0x4000 BIOS write-back fixed-base fixed-length set-by-firmware active 0x88000/0x4000 BIOS write-back fixed-base fixed-length set-by-firmware active 0x8c000/0x4000 BIOS write-back fixed-base fixed-length set-by-firmware active 0x9/0x4000 BIOS write-back fixed-base fixed-length set-by-firmware active 0x94000/0x4000 BIOS write-back fixed-base fixed-length set-by-firmware active 0x98000/0x4000 BIOS write-back fixed-base fixed-length set-by-firmware active 0x9c000/0x4000 BIOS write-back fixed-base fixed-length set-by-firmware active 0xa/0x4000 BIOS uncacheable fixed-base fixed-length set-by-firmware active 0xa4000/0x4000 BIOS uncacheable fixed-base fixed-length set-by-firmware active 0xa8000/0x4000 BIOS uncacheable fixed-base fixed-length set-by-firmware active 0xac000/0x4000 BIOS uncacheable fixed-base fixed-length set-by-firmware active 0xb/0x4000 BIOS uncacheable fixed-base fixed-length set-by-firmware active 0xb4000/0x4000 BIOS uncacheable fixed-base fixed-length set-by-firmware active 0xb8000/0x4000 BIOS uncacheable fixed-base fixed-length set-by-firmware active 0xbc000/0x4000 BIOS uncacheable fixed-base fixed-length set-by-firmware active 0xc/0x1000 BIOS write-protect fixed-base fixed-length set-by-firmware active 0xc1000/0x1000 BIOS write-protect fixed-base fixed-length set-by-firmware active 0xc2000/0x1000 BIOS write-protect fixed-base fixed-length set-by-firmware active 0xc3000/0x1000 BIOS write-protect fixed-base fixed-length set-by-firmware active 0xc4000/0x1000 BIOS write-protect fixed-base fixed-length set-by-firmware active 0xc5000/0x1000 BIOS write-protect fixed-base fixed-length set-by-firmware active 0xc6000/0x1000 BIOS write-protect fixed-base fixed-length set-by-firmware active 0xc7000/0x1000 BIOS write-protect fixed-base fixed-length set-by-firmware active 0xc8000/0x1000 BIOS write-protect fixed-base fixed-length set-by-firmware active 0xc9000/0x1000 BIOS write-protect fixed-base fixed-length set-by-firmware active 0xca000/0x1000 BIOS write-protect fixed-base fixed-length set-by-firmware active 0xcb000/0x1000 BIOS write-protect fixed-base fixed-length set-by-firmware active 0xcc000/0x1000 BIOS write-protect fixed-base fixed-length set-by-firmware active 0xcd000/0x1000 BIOS write-protect fixed-base fixed-length set-by-firmware active 0xce000/0x1000 BIOS write-protect fixed-base fixed-length set-by-firmware active 0xcf000/0x1000 BIOS write-protect fixed-base fixed-length set-by-firmware active 0xd/0x1000 BIOS write-protect fixed-base fixed-length set-by-firmware active 0xd1000/0x1000 BIOS write-protect fixed-base fixed-length set-by-firmware active 0xd2000/0x1000 BIOS write-protect fixed-base fixed-length set-by-firmware active 0xd3000/0x1000 BIOS write-protect fixed-base fixed-length set-by-firmware active 0xd4000/0x1000 BIOS write-protect fixed-base fixed-length set-by-firmware active 0xd5000/0x1000 BIOS write-protect fixed-base fixed-length set-by-firmware active 0xd6000/0x1000 BIOS write-protect fixed-base fixed-length set-by-firmware active 0xd7000/0x1000 BIOS write-protect fixed-base fixed-length set-by-firmware active 0xd8000/0x1000 BIOS write-protect fixed-base fixed-length set-by-firmware active 0xd9000/0x1000 BIOS write-protect fixed-base fixed-length set-by-firmware active 0xda000/0x1000 BIOS write-protect fixed-base fixed-length set-by-firmware active 0xdb000/0x1000 BIOS write-protect fixed-base fixed-length set-by-firmware active 0xdc000/0x1000 BIOS
Re: panic: invalid PDPE on recend amd64
On 11/6/10, Jia-Shiun Li jiash...@gmail.com wrote: Hi, I got a similar panic on amd64. Looking into the source it hit KASSERT((base (len - 1))) in pmap_demote_DMAP(). I replaced it with a printf to see what triggered the assertion and here is the output. Combined with memcontrol output 'bogus' keyword it seems buggy BIOS violated some kind of spec and caused this. Is it fatal? It looks fine on my machine without the assertion. Send uname output. The fix for this issue got commited few days ago. ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org
Re: panic: invalid PDPE on recend amd64
Paul B Mahol wrote: On 11/6/10, Jia-Shiun Li jiash...@gmail.com wrote: Hi, I got a similar panic on amd64. Looking into the source it hit KASSERT((base (len - 1))) in pmap_demote_DMAP(). I replaced it with a printf to see what triggered the assertion and here is the output. Combined with memcontrol output 'bogus' keyword it seems buggy BIOS violated some kind of spec and caused this. Is it fatal? It looks fine on my machine without the assertion. Send uname output. The fix for this issue got commited few days ago. This is a different type of BIOS misconfiguration than your machine had. I'm attaching a possible patch for this one. Regards, Alan Index: amd64/amd64/amd64_mem.c === --- amd64/amd64/amd64_mem.c (revision 214679) +++ amd64/amd64/amd64_mem.c (working copy) @@ -583,7 +583,7 @@ amd64_mrset(struct mem_range_softc *sc, struct mem i = (sc-mr_cap MR686_FIXMTRR) ? MTRR_N64K + MTRR_N16K + MTRR_N4K : 0; mrd = sc-mr_desc + i; for (; i sc-mr_ndesc; i++, mrd++) { - if (mrd-mr_flags MDF_ACTIVE) + if ((mrd-mr_flags (MDF_ACTIVE | MDF_BOGUS)) == MDF_ACTIVE) pmap_demote_DMAP(mrd-mr_base, mrd-mr_len, FALSE); } @@ -688,7 +688,7 @@ amd64_mrinit(struct mem_range_softc *sc) i = (sc-mr_cap MR686_FIXMTRR) ? MTRR_N64K + MTRR_N16K + MTRR_N4K : 0; mrd = sc-mr_desc + i; for (; i sc-mr_ndesc; i++, mrd++) { - if (mrd-mr_flags MDF_ACTIVE) + if ((mrd-mr_flags (MDF_ACTIVE | MDF_BOGUS)) == MDF_ACTIVE) pmap_demote_DMAP(mrd-mr_base, mrd-mr_len, TRUE); } } ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org
Re: panic: invalid PDPE on recend amd64
on 30/10/2010 17:43 Paul B Mahol said the following: Hi, Booting amd64 kernel panic in pmap_demote_DMAP(): invalid PDPE This is on: Copyright (c) 1992-2010 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 is a registered trademark of The FreeBSD Foundation. FreeBSD 9.0-CURRENT #1 r214542+ac89f9b: Sat Oct 30 09:40:45 UTC 2010 root@:/usr/obj/usr/src/sys/kernel i386 amd64 or i386? CPU: Intel(R) Core(TM)2 CPU T5500 @ 1.66GHz (1662.54-MHz 686-class CPU) Origin = GenuineIntel Id = 0x6f2 Family = 6 Model = f Stepping = 2 Features=0xbfebfbffFPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE Features2=0xe3bdSSE3,DTES64,MON,DS_CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM AMD Features=0x2010NX,LM AMD Features2=0x1LAHF TSC: P-state invariant real memory = 2147483648 (2048 MB) avail memory = 2087346176 (1990 MB) ACPI APIC Table: HP 30A2 FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs FreeBSD/SMP: 1 package(s) x 2 core(s) cpu0 (BSP): APIC ID: 0 cpu1 (AP): APIC ID: 1 ioapic0: Changing APIC ID to 1 ioapic0 Version 2.0 irqs 0-23 on motherboard acpi0: HPQOEM SLIC-MPC on motherboard acpi0: Power Button (fixed) acpi0: reservation of 0, a (3) failed It seems that the panic happens at the stage where you should be able to enter ddb and obtain a backtrace at the very least, after adding DDB option to your kernel. -- Andriy Gapon ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org
Re: panic: invalid PDPE on recend amd64
On 10/30/10, Andriy Gapon a...@icyb.net.ua wrote: on 30/10/2010 17:43 Paul B Mahol said the following: Hi, Booting amd64 kernel panic in pmap_demote_DMAP(): invalid PDPE This is on: Copyright (c) 1992-2010 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 is a registered trademark of The FreeBSD Foundation. FreeBSD 9.0-CURRENT #1 r214542+ac89f9b: Sat Oct 30 09:40:45 UTC 2010 root@:/usr/obj/usr/src/sys/kernel i386 amd64 or i386? That is working i386 kernel, I can send bt of amd64 kernel as picture. CPU: Intel(R) Core(TM)2 CPU T5500 @ 1.66GHz (1662.54-MHz 686-class CPU) Origin = GenuineIntel Id = 0x6f2 Family = 6 Model = f Stepping = 2 Features=0xbfebfbffFPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE Features2=0xe3bdSSE3,DTES64,MON,DS_CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM AMD Features=0x2010NX,LM AMD Features2=0x1LAHF TSC: P-state invariant real memory = 2147483648 (2048 MB) avail memory = 2087346176 (1990 MB) ACPI APIC Table: HP 30A2 FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs FreeBSD/SMP: 1 package(s) x 2 core(s) cpu0 (BSP): APIC ID: 0 cpu1 (AP): APIC ID: 1 ioapic0: Changing APIC ID to 1 ioapic0 Version 2.0 irqs 0-23 on motherboard acpi0: HPQOEM SLIC-MPC on motherboard acpi0: Power Button (fixed) acpi0: reservation of 0, a (3) failed It seems that the panic happens at the stage where you should be able to enter ddb and obtain a backtrace at the very least, after adding DDB option to your kernel. ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org
Re: panic: invalid PDPE on recend amd64
on 30/10/2010 18:00 Paul B Mahol said the following: On 10/30/10, Andriy Gapon a...@icyb.net.ua wrote: on 30/10/2010 17:43 Paul B Mahol said the following: Hi, Booting amd64 kernel panic in pmap_demote_DMAP(): invalid PDPE This is on: Copyright (c) 1992-2010 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 is a registered trademark of The FreeBSD Foundation. FreeBSD 9.0-CURRENT #1 r214542+ac89f9b: Sat Oct 30 09:40:45 UTC 2010 root@:/usr/obj/usr/src/sys/kernel i386 amd64 or i386? Oh, right. Yes, that would be helpful. Thank you. -- Andriy Gapon ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org
Re: panic: invalid PDPE on recend amd64
On 10/30/10, Paul B Mahol one...@gmail.com wrote: On 10/30/10, Andriy Gapon a...@icyb.net.ua wrote: on 30/10/2010 17:43 Paul B Mahol said the following: Hi, Booting amd64 kernel panic in pmap_demote_DMAP(): invalid PDPE This is on: Copyright (c) 1992-2010 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 is a registered trademark of The FreeBSD Foundation. FreeBSD 9.0-CURRENT #1 r214542+ac89f9b: Sat Oct 30 09:40:45 UTC 2010 root@:/usr/obj/usr/src/sys/kernel i386 amd64 or i386? That is working i386 kernel, I can send bt of amd64 kernel as picture. CPU: Intel(R) Core(TM)2 CPU T5500 @ 1.66GHz (1662.54-MHz 686-class CPU) Origin = GenuineIntel Id = 0x6f2 Family = 6 Model = f Stepping = 2 Features=0xbfebfbffFPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,APIC,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,CLFLUSH,DTS,ACPI,MMX,FXSR,SSE,SSE2,SS,HTT,TM,PBE Features2=0xe3bdSSE3,DTES64,MON,DS_CPL,VMX,EST,TM2,SSSE3,CX16,xTPR,PDCM AMD Features=0x2010NX,LM AMD Features2=0x1LAHF TSC: P-state invariant real memory = 2147483648 (2048 MB) avail memory = 2087346176 (1990 MB) ACPI APIC Table: HP 30A2 FreeBSD/SMP: Multiprocessor System Detected: 2 CPUs FreeBSD/SMP: 1 package(s) x 2 core(s) cpu0 (BSP): APIC ID: 0 cpu1 (AP): APIC ID: 1 ioapic0: Changing APIC ID to 1 ioapic0 Version 2.0 irqs 0-23 on motherboard acpi0: HPQOEM SLIC-MPC on motherboard acpi0: Power Button (fixed) acpi0: reservation of 0, a (3) failed It seems that the panic happens at the stage where you should be able to enter ddb and obtain a backtrace at the very least, after adding DDB option to your kernel. panic: pmap_demote_DMAP: Invalid PDPE cpuid=0 KDB: enter: panic: [ thread pid 0 tid .. Stopped at .. db bt Tracing pid 0 .. kdb_enter() .. panic() .. pmap_demote_DMAP() .. amd64_mrinit() .. mem_modevent() .. module_register_init() .. mi_startup() .. If I remove mem module from loader.conf kernel boots fine. If I kldload mem after boot, panic happens. ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org
Re: panic: invalid PDPE on recend amd64
Please boot your i386 kernel and send me the output from memcontrol list. Alan ___ freebsd-current@freebsd.org mailing list http://lists.freebsd.org/mailman/listinfo/freebsd-current To unsubscribe, send any mail to freebsd-current-unsubscr...@freebsd.org