Re: [x86_32] With 4GB installed, in which cases low mem total isless than 896MB?

From: Arjan van de Ven
Date: Wed Apr 30 2008 - 11:19:29 EST


On Wed, 30 Apr 2008 17:02:02 +0200
Fabio De Francesco <fabiomdf@xxxxxxxx> wrote:

> Hi all,
>
> I've got a Linux box, Intel Core 2 T7700 with 4GB RAM installed, with
> vanilla kernel 2.6.24 + TuxOnIce patch-set compiled for x86_32bit
> (CONFIG_X86_32=y), whose /proc/meminfo shows "LowTotal 794MB".

I'm not an expert in this, but one thing is that the more memory the system has, the more overhead there is.
(roughly 64 bytes per 4Kb of memory).

>
> A further issue is about the "MemTotal" value that only shows more or
> less 3550MB with HIGHMEM4G selected, and it shows a more satisfying
> value of 4050MB with HIGHMEM64G + X86_PAE + RESOURCES_64BIT selected.
> In both cases LowTotal is always less than 800MB.
>
> Why is it needed to activate the PAE mechanism in order to see and
> use the whole 4GB memory? Is it what it is expected to be done?

yes this is expected.
Let me explain: even though you have 4Gb of memory, it's spread out like this:

0 - 3.5Gb Memory
3.5Gb - 4Gb Gap
4Gb - 4.5Gb Memory

This "gap" is needed for PCI. PCI devices have "memory" on them (technical term is "MMIO", memory mapped IO) and
this needs to be in the first 4Gb of memory (traditionally). So the system leaves a 0.5Gb gap on your system
for this purpose.
Some other systems have 0.25Gb or 1Gb gaps; some systems even have a BIOS option for the size of this gap.
But a gap.. all machines with >= 4Gb have that.

Just enable PAE and be done with it. (And you get the non-executable stack security feature as well then)
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/