I have a server (running gnegg.ch) with 1.5 GBytes of RAM and I’m running Gentoo Linux (another candidate for my all-time favourites list, but it’s still too soon for that. I’m only working with it for a little bit more than one year). And as I wanted the thing to be as secure as possible, I created a kernel from scratch without module support.
What I’ve always asked myself is why the heck “free” just lists 896 Mbytes of available memory:
galadriel root # free -m total used free shared buffers cached Mem: 885 193 692 0 6 69 -/+ buffers/cache: 117 768 Swap: 976 0 976
At first I had a BIOS problem in mind, bit after having seen GRUB recognizing the whole amount of memory, I came to the conclusion that there must be some problem in the kernel
As 2.6 is still quite new, I waited for the next gentoo-dev-sources to be released which happened somewhere around today. With the new kernel the problem still existed, so I dug deeper
dmesg output something like this in its first lines:
Warning only 896MB will be used. Use a HIGHMEM enabled kernel.
Though I misread the second line as a status message (stating that HIGHMEM is being used) instead of a request, I entered the above message to Google Groups and found out that the second line indeed is the solution to the problem
In Processor type and features, set High Memory Support to 4GB and recompile your kernel.
What I don’t understand: I’m having this problem with 1.5GB of RAM and this option seemed to me like talking about 4 GB. But Google was helpful like most of the time, enabling me to virtually double the available RAM
galadriel root # free -m total used free shared buffers cached Mem: 1520 333 1186 0 12 158 -/+ buffers/cache: 162 1358 Swap: 976 0 976
Nice! Isn’t it?
Update: For those that have not yet noticed it: The title of this entry does hint at products like this, though this one is at least honest in its description.