All of lore.kernel.org
 help / color / mirror / Atom feed
* HIMEM calculation
@ 2007-09-03 22:19 James C. Georgas
  2007-09-03 23:40 ` Chris Snook
  0 siblings, 1 reply; 3+ messages in thread
From: James C. Georgas @ 2007-09-03 22:19 UTC (permalink / raw)
  To: linux-kernel

I'm not sure I understand how the kernel calculates the amount of
physical RAM it can map during the boot process.

I've quoted two blocks of kernel messages below, one for a kernel with
NOHIGHMEM and another for a kernel with HIGHMEM4G.

If I do the math on the BIOS provided physical RAM map, there is less
than 5MiB of the address space reserved. Since I only have 1GiB of
physical RAM in the board, I figured that it would still be possible to
physically map 1019MiB, even with the 3GiB/1GiB split between user space
and kernel space that occurs with NOHIGHMEM.

However, What actually happens is that I'm 127MiB short of a full GiB.

What am I missing here? Why does that last 127MiB have to go in HIGHMEM?

Message log for a NOHIGHMEM kernel:

Sep  3 16:56:50 Tachyon kernel: Linux version 2.6.22-gentoo-r5 (root@Tachyon) (gcc version 4.1.2 (Gentoo 4.1.2 p1.0.1)) #2 PREEMPT Mon Sep 3 16:01:08 EDT 2007
Sep  3 16:56:50 Tachyon kernel: BIOS-provided physical RAM map:
Sep  3 16:56:50 Tachyon kernel:  BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
Sep  3 16:56:50 Tachyon kernel:  BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
Sep  3 16:56:50 Tachyon kernel:  BIOS-e820: 0000000000100000 - 000000003ffd3000 (usable)
Sep  3 16:56:50 Tachyon kernel:  BIOS-e820: 000000003ffd3000 - 0000000040000000 (reserved)
Sep  3 16:56:50 Tachyon kernel:  BIOS-e820: 00000000feda0000 - 00000000fee00000 (reserved)
Sep  3 16:56:50 Tachyon kernel:  BIOS-e820: 00000000ffb80000 - 0000000100000000 (reserved)
Sep  3 16:56:50 Tachyon kernel: Warning only 896MB will be used.
Sep  3 16:56:50 Tachyon kernel: Use a HIGHMEM enabled kernel.
Sep  3 16:56:50 Tachyon kernel: 896MB LOWMEM available.
Sep  3 16:56:50 Tachyon kernel: Zone PFN ranges:
Sep  3 16:56:50 Tachyon kernel:   DMA             0 ->     4096
Sep  3 16:56:50 Tachyon kernel:   Normal       4096 ->   229376
Sep  3 16:56:50 Tachyon kernel: early_node_map[1] active PFN ranges
Sep  3 16:56:50 Tachyon kernel:     0:        0 ->   229376
Sep  3 16:56:50 Tachyon kernel: DMI 2.3 present.




Message log for a HIGHMEM4G kernel:

Sep  3 17:40:53 Tachyon kernel: BIOS-provided physical RAM map:
Sep  3 17:40:53 Tachyon kernel:  BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
Sep  3 17:40:53 Tachyon kernel:  BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
Sep  3 17:40:53 Tachyon kernel:  BIOS-e820: 0000000000100000 - 000000003ffd3000 (usable)
Sep  3 17:40:53 Tachyon kernel:  BIOS-e820: 000000003ffd3000 - 0000000040000000 (reserved)
Sep  3 17:40:53 Tachyon kernel:  BIOS-e820: 00000000feda0000 - 00000000fee00000 (reserved)
Sep  3 17:40:53 Tachyon kernel:  BIOS-e820: 00000000ffb80000 - 0000000100000000 (reserved)
Sep  3 17:40:53 Tachyon kernel: 127MB HIGHMEM available.
Sep  3 17:40:53 Tachyon kernel: 896MB LOWMEM available.
Sep  3 17:40:53 Tachyon kernel: Zone PFN ranges:
Sep  3 17:40:53 Tachyon kernel:   DMA             0 ->     4096
Sep  3 17:40:53 Tachyon kernel:   Normal       4096 ->   229376
Sep  3 17:40:53 Tachyon kernel:   HighMem    229376 ->   262099
Sep  3 17:40:53 Tachyon kernel: early_node_map[1] active PFN ranges
Sep  3 17:40:53 Tachyon kernel:     0:        0 ->   262099
Sep  3 17:40:53 Tachyon kernel: DMI 2.3 present.



^ permalink raw reply	[flat|nested] 3+ messages in thread
[parent not found: <491631.7157.qm@web88107.mail.re2.yahoo.com>]

end of thread, other threads:[~2007-09-04 12:48 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2007-09-03 22:19 HIMEM calculation James C. Georgas
2007-09-03 23:40 ` Chris Snook
     [not found] <491631.7157.qm@web88107.mail.re2.yahoo.com>
2007-09-04 12:48 ` Chris Snook

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.