* x86_32 machine with 4G - possible wrong last_pfn value ?
[not found] <AANLkTi=BszM8mwQ+Ooff+8D1vOXZ1=LLOp3MwPcPQu4-@mail.gmail.com>
@ 2011-03-06 15:04 ` Haim D.
2011-03-06 20:11 ` H. Peter Anvin
0 siblings, 1 reply; 2+ messages in thread
From: Haim D. @ 2011-03-06 15:04 UTC (permalink / raw)
To: linux-kernel
Hi,
I'm running a x86_32 bit 4G machine with 2.4.33 and 2.6.34, I've
noticed the difference between max_pfn values
2.4.33 shows 0x100000
2.4.34 shows 0xdffe0
The issue seems to be in
--- 2.6.34/arch/x86/kernel/e820.c 17 Jun 2010 12:00:26 -0000 1.1.2.1
+++ 2.6.34/arch/x86/kernel/e820.c 6 Mar 2011 14:56:44 -0000
@@ -869,7 +869,7 @@ static unsigned long __init e820_end_pfn
start_pfn = ei->addr >> PAGE_SHIFT;
end_pfn = (ei->addr + ei->size) >> PAGE_SHIFT;
- if (start_pfn >= limit_pfn)
+ if (start_pfn > limit_pfn)
continue;
if (end_pfn > limit_pfn) {
last_pfn = limit_pfn;
=======2.4=======
Mar 3 09:22:32 accelerator kernel: Linux version 2.4.33
(root@haimd-ubuntu) (gcc version 3.2.3 20030502 (Red Hat Linux
3.2.3-53)) #3 Wed Mar 2 18:36:10 IST
Mar 6 13:27:17 localhost kernel: BIOS-provided physical RAM map:
Mar 6 13:27:17 localhost kernel: BIOS-e820: 0000000000000000 -
000000000009fc00 (usable)
Mar 6 13:27:17 localhost kernel: BIOS-e820: 000000000009fc00 -
00000000000a0000 (reserved)
Mar 6 13:27:17 localhost kernel: BIOS-e820: 00000000000e0000 -
0000000000100000 (reserved)
Mar 6 13:27:17 localhost kernel: BIOS-e820: 0000000000100000 -
00000000dffe0000 (usable)
Mar 6 13:27:17 localhost kernel: BIOS-e820: 00000000dffe0000 -
00000000dffee000 (ACPI data)
Mar 6 13:27:17 localhost kernel: BIOS-e820: 00000000dffee000 -
00000000e0000000 (ACPI NVS)
Mar 6 13:27:17 localhost kernel: BIOS-e820: 00000000fee00000 -
00000000fee01000 (reserved)
Mar 6 13:27:17 localhost kernel: BIOS-e820: 00000000ffb00000 -
0000000100000000 (reserved)
Mar 6 13:27:17 localhost kernel: BIOS-e820: 0000000100000000 -
0000000120000000 (usable)
Mar 6 13:27:17 localhost kernel: Warning only 4GB will be used.
Mar 6 13:27:17 localhost kernel: Use a PAE enabled kernel.
Mar 6 13:27:17 localhost kernel: (find_max_low_pfn:1003) max_low_pfn to 753664
Mar 6 13:27:17 localhost kernel: 1152MB HIGHMEM available.
Mar 6 13:27:17 localhost kernel: 2944MB LOWMEM available.
Mar 6 13:27:17 localhost kernel: found SMP MP-table at 000ff780
Mar 6 13:27:17 localhost kernel: hm, page 000ff000 reserved twice.
Mar 6 13:27:17 localhost kernel: hm, page 00100000 reserved twice.
Mar 6 13:27:17 localhost kernel: hm, page 000fd000 reserved twice.
Mar 6 13:27:17 localhost kernel: hm, page 000fe000 reserved twice.
Mar 6 13:27:17 localhost kernel: On node 0 totalpages: 1048576
============2.6 ==========
Mar 6 08:19:06 localhost kernel: [ 0.000000] Linux version
2.6.34.aos (root@builder) (gcc version 4.1.2 20080704 (Red Hat
4.1.2-48)) #1 Thu Mar 3 17:54:29 IST 2011
Mar 6 08:19:06 localhost kernel: [ 0.000000] BIOS-provided physical RAM map:
Mar 6 08:19:06 localhost kernel: [ 0.000000] BIOS-e820:
0000000000000000 - 000000000009fc00 (usable)
Mar 6 08:19:06 localhost kernel: [ 0.000000] BIOS-e820:
000000000009fc00 - 00000000000a0000 (reserved)
Mar 6 08:19:06 localhost kernel: [ 0.000000] BIOS-e820:
00000000000e0000 - 0000000000100000 (reserved)
Mar 6 08:19:06 localhost kernel: [ 0.000000] BIOS-e820:
0000000000100000 - 00000000dffe0000 (usable)
Mar 6 08:19:06 localhost kernel: [ 0.000000] BIOS-e820:
00000000dffe0000 - 00000000dffee000 (ACPI data)
Mar 6 08:19:06 localhost kernel: [ 0.000000] BIOS-e820:
00000000dffee000 - 00000000e0000000 (ACPI NVS)
Mar 6 08:19:06 localhost kernel: [ 0.000000] BIOS-e820:
00000000fee00000 - 00000000fee01000 (reserved)
Mar 6 08:19:06 localhost kernel: [ 0.000000] BIOS-e820:
00000000ffb00000 - 0000000100000000 (reserved)
Mar 6 08:19:06 localhost kernel: [ 0.000000] BIOS-e820:
0000000100000000 - 0000000120000000 (usable)
Mar 6 08:19:06 localhost kernel: [ 0.000000] Notice: NX (Execute
Disable) protection cannot be enabled: non-PAE kernel!
Mar 6 08:19:06 localhost kernel: [ 0.000000] DMI present.
Mar 6 08:19:06 localhost kernel: [ 0.000000] AMI BIOS detected:
BIOS may corrupt low RAM, working around it.
Mar 6 08:19:06 localhost kernel: [ 0.000000] e820 update range:
0000000000000000 - 0000000000010000 (usable) ==> (reserved)
Mar 6 08:19:06 localhost kernel: [ 0.000000] e820 update range:
0000000000000000 - 0000000000001000 (usable) ==> (reserved)
Mar 6 08:19:06 localhost kernel: [ 0.000000] e820 remove range:
00000000000a0000 - 0000000000100000 (usable)
Mar 6 08:19:06 localhost kernel: [ 0.000000] last_pfn = 0xdffe0
max_arch_pfn = 0x100000
please advise,
-haim
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: x86_32 machine with 4G - possible wrong last_pfn value ?
2011-03-06 15:04 ` x86_32 machine with 4G - possible wrong last_pfn value ? Haim D.
@ 2011-03-06 20:11 ` H. Peter Anvin
0 siblings, 0 replies; 2+ messages in thread
From: H. Peter Anvin @ 2011-03-06 20:11 UTC (permalink / raw)
To: Haim D.; +Cc: linux-kernel, Ingo Molnar
On 03/06/2011 07:04 AM, Haim D. wrote:
> Hi,
> I'm running a x86_32 bit 4G machine with 2.4.33 and 2.6.34, I've
> noticed the difference between max_pfn values
> 2.4.33 shows 0x100000
> 2.4.34 shows 0xdffe0
>
[ ... ]
> Mar 6 13:27:17 localhost kernel: BIOS-provided physical RAM map:
> Mar 6 13:27:17 localhost kernel: BIOS-e820: 0000000000000000 -
> 000000000009fc00 (usable)
> Mar 6 13:27:17 localhost kernel: BIOS-e820: 000000000009fc00 -
> 00000000000a0000 (reserved)
> Mar 6 13:27:17 localhost kernel: BIOS-e820: 00000000000e0000 -
> 0000000000100000 (reserved)
> Mar 6 13:27:17 localhost kernel: BIOS-e820: 0000000000100000 -
> 00000000dffe0000 (usable)
> Mar 6 13:27:17 localhost kernel: BIOS-e820: 00000000dffe0000 -
> 00000000dffee000 (ACPI data)
> Mar 6 13:27:17 localhost kernel: BIOS-e820: 00000000dffee000 -
> 00000000e0000000 (ACPI NVS)
> Mar 6 13:27:17 localhost kernel: BIOS-e820: 00000000fee00000 -
> 00000000fee01000 (reserved)
> Mar 6 13:27:17 localhost kernel: BIOS-e820: 00000000ffb00000 -
> 0000000100000000 (reserved)
> Mar 6 13:27:17 localhost kernel: BIOS-e820: 0000000100000000 -
> 0000000120000000 (usable)
Based on this memory map, 0xdffe0 is the correct max_pfn value.
> Mar 6 13:27:17 localhost kernel: Warning only 4GB will be used.
> Mar 6 13:27:17 localhost kernel: Use a PAE enabled kernel.
> Mar 6 13:27:17 localhost kernel: (find_max_low_pfn:1003) max_low_pfn to 753664
> Mar 6 13:27:17 localhost kernel: 1152MB HIGHMEM available.
> Mar 6 13:27:17 localhost kernel: 2944MB LOWMEM available.
... for a non-PAE kernel, apparently compiled with a weird split.
-hpa
--
H. Peter Anvin, Intel Open Source Technology Center
I work for Intel. I don't speak on their behalf.
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2011-03-06 20:11 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <AANLkTi=BszM8mwQ+Ooff+8D1vOXZ1=LLOp3MwPcPQu4-@mail.gmail.com>
2011-03-06 15:04 ` x86_32 machine with 4G - possible wrong last_pfn value ? Haim D.
2011-03-06 20:11 ` H. Peter Anvin
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox