I recently installed an additional 32GB of memory in my Dell PowerEdge R900 home virtual machine server. Memory check passed and I booted into CentOS. When I opened the Virtual machine manager and checked my memory usage, my machine only reported 23.59GB as being available for use. I thought that was very odd, so I invoked dmidecode and all 48GB of installed memory were reported correctly.
However, when I ran the free command, it lists the total memory as being 23.59GB again. I'm using the 64-bit version of CentOS 6.5 on a Dell PowerEdge R900 so what's going on here that would stop me from using all 48GB?
Update: Here are the relevant portions of dmesg output:
MTRR default type: uncachable
MTRR variable ranges enabled: 0 base 0000000000 mask FF80000000 write-back 1 base 0100000000 mask FF00000000 write-back 2 base 0200000000 mask FE00000000 write-back 3 base 0400000000 mask FE00000000 write-back 4 base 0600000000 mask FF80000000 write-back 5 base 007FC00000 mask FFFFC00000 uncachable 6 disabled 7 disabled x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106 original variable MTRRs reg 0, base: 0GB, range: 2GB, type WB reg 1, base: 4GB, range: 4GB, type WB reg 2, base: 8GB, range: 8GB, type WB reg 3, base: 16GB, range: 8GB, type WB reg 4, base: 24GB, range: 2GB, type WB reg 5, base: 2044MB, range: 4MB, type UC total RAM covered: 24572M Found optimal setting for mtrr clean up gran_size: 64K chunk_size: 8M num_reg: 6 lose cover RAM: 0G New variable MTRRs reg 0, base: 0GB, range: 2GB, type WB reg 1, base: 2044MB, range: 4MB, type UC reg 2, base: 4GB, range: 4GB, type WB reg 3, base: 8GB, range: 8GB, type WB reg 4, base: 16GB, range: 8GB, type WB reg 5, base: 24GB, range: 2GB, type WB e820 update range: 000000007fc00000 - 0000000100000000 (usable) ==> (reserved)