Hey all,
If you're like me, maybe you have just switched to the 64-bit Server 2008, and you may or may not have yet noticed if you are getting screwwwwed for free
RAM.
Here's the scenario in which I found myself after installing a clean Server 2008 x64 image on a machine with a fresh BIOS:
System properties reports you have 4.00 GB installed.
Virtual Server/VMRCPlus and even Task Manager's Performance
tab disagree with that assessment and report you only have a total of about
2800 MB of available system memory.
Unfortunately, it's not a lie, that's actually how much memory is free to
be consumed. Which will give you trouble if you try to do something sassy that
requires system resources, like, say, start a VM...
It's something to do with legacy support for hardware that was designed to
run with 32-bit DMA. I only vaguely understand; I guess hardware memory access
gets mapped to the top of the 32-bit address space. It's a northbridge
thing.
The good news is that this CPU/BIOS/Northbridge configuration in a lot of machines has support for a 64-bit OS managing DMA and re-mapping this
otherwise consumed physical memory into virtual buffers in the 64-bit address
space... So it may just be a BIOS setting that's not on by default.
On my particular workstation, this was found in:
Advanced -> Chipset -> Northbridge Configuration -> Memory
Configuration -> Hardware Memory Hole -> Enabled.
I can't guarantee there aren't any compatibility problems, but I haven't
run into any as of yet, and I'll let you know if I do!