Re: panic: invalid PDPE on recend amd64

2010-11-10 Thread Jia-Shiun Li
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

2010-11-06 Thread Jia-Shiun Li
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

2010-11-06 Thread Paul B Mahol
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

2010-11-06 Thread Alan Cox

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

2010-10-30 Thread Andriy Gapon
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

2010-10-30 Thread Paul B Mahol
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

2010-10-30 Thread Andriy Gapon
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

2010-10-30 Thread Paul B Mahol
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

2010-10-30 Thread Alan Cox

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