public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* 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