8GB RAM missing?

r4pt0x

Member
Jan 5, 2012
53
0
6
I just recognized our proxmox system isn't using the full ammount of RAM anymore...
Unfortunately i can't tell since when this problem is persistent (how often do you check if you have "lost" RAM?...), i just recognized our Windows machine (MSSQL server) being utterly slow and having really poor RAM performance, while checking for the reason (was mainly a stuck process) i also recognized the missing RAM...

The Machine has 32GB RAM (4x8GB):

root@proxmox:~# lshw -c memory
Code:
....
     *-memory
          description: System Memory
          physical id: 1a
          slot: System board or motherboard
          size: 32GiB
        *-bank:0
             description: DIMM Synchronous 1333 MHz (0.8 ns)
             product: HMT31GR7BFR4C-H9
             vendor: AD80
             physical id: 0
             serial: B0111052
             slot: DIMM A1
             size: 8GiB
             width: 64 bits
             clock: 1333MHz (0.8ns)
        *-bank:1
             description: DIMM Synchronous [empty]
             physical id: 1
             slot: DIMM A2
        *-bank:2
             description: DIMM Synchronous 1333 MHz (0.8 ns)
             product: HMT31GR7BFR4C-H9
             vendor: AD80
             physical id: 2
             serial: 7A0A674F
             slot: DIMM B1
             size: 8GiB
             width: 64 bits
             clock: 1333MHz (0.8ns)
        *-bank:3
             description: DIMM Synchronous [empty]
             physical id: 3
             slot: DIMM B2
        *-bank:4
             description: DIMM Synchronous [empty]
             physical id: 4
             slot: DIMM C1
        *-bank:5
             description: DIMM Synchronous [empty]
             physical id: 5
             slot: DIMM C2
        *-bank:6
             description: DIMM Synchronous [empty]
             physical id: 6
             slot: DIMM D1
        *-bank:7
             description: DIMM Synchronous [empty]
             physical id: 7
             slot: DIMM D2
        *-bank:8
             description: DIMM Synchronous 1333 MHz (0.8 ns)
             product: HMT31GR7BFR4C-H9
             vendor: AD80
             physical id: 8
             serial: D383A713
             slot: DIMM E1
             size: 8GiB
             width: 64 bits
             clock: 1333MHz (0.8ns)
        *-bank:9
             description: DIMM Synchronous [empty]
             physical id: 9
             slot: DIMM E2
        *-bank:10
             description: DIMM Synchronous 1333 MHz (0.8 ns)
             product: HMT31GR7BFR4C-H9
             vendor: AD80
             physical id: a
             serial: 90113052
             slot: DIMM F1
             size: 8GiB
             width: 64 bits
             clock: 1333MHz (0.8ns)
        *-bank:11
             description: DIMM Synchronous [empty]
             physical id: b
             slot: DIMM F2



But it's only seeing/using 24GB of it:

root@proxmox:~# cat /proc/meminfo
Code:
MemTotal:       24685908 kB
MemFree:          451476 kB
Buffers:            6252 kB
Cached:           493404 kB
SwapCached:      1482212 kB
Active:         19703416 kB
Inactive:        3164072 kB
Active(anon):   19636904 kB
Inactive(anon):  2780684 kB
Active(file):      66512 kB
Inactive(file):   383388 kB
Unevictable:       59588 kB
Mlocked:           59588 kB
SwapTotal:      24117240 kB
SwapFree:       16725560 kB
Dirty:               144 kB
Writeback:             0 kB
AnonPages:      21091740 kB
Mapped:            61996 kB
Shmem:             43588 kB
Slab:             763828 kB                                                                                           
SReclaimable:      73584 kB                                                                                           
SUnreclaim:       690244 kB                                                                                           
KernelStack:        3008 kB
PageTables:        82680 kB
NFS_Unstable:          0 kB
Bounce:                0 kB
WritebackTmp:          0 kB
CommitLimit:    36460192 kB
Committed_AS:   39778488 kB
VmallocTotal:   34359738367 kB
VmallocUsed:      205592 kB
VmallocChunk:   34342044204 kB
HardwareCorrupted:     0 kB
AnonHugePages:         0 kB
HugePages_Total:       0
HugePages_Free:        0
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
DirectMap4k:        6848 kB
DirectMap2M:    25157632 kB

Any ideas?

BIOS hasn't been touched since setup 10 months ago, also the RAM size hasn't changed since (upgrade was planned for the next 2 months).
I haven't seen such behaviour yet, so i have no idea where to start... Thanks for any help!
 
While investigating some other problem i just found these entries in dmesg:

Code:
BIOS-provided physical RAM map:
 BIOS-e820: 0000000000000000 - 000000000009cc00 (usable)
 BIOS-e820: 000000000009cc00 - 00000000000a0000 (reserved)
 BIOS-e820: 00000000000d2000 - 00000000000d4000 (reserved)
 BIOS-e820: 00000000000e4000 - 0000000000100000 (reserved)
 BIOS-e820: 0000000000100000 - 00000000bfeb0000 (usable)
 BIOS-e820: 00000000bfeb0000 - 00000000bfec3000 (ACPI data)
 BIOS-e820: 00000000bfec3000 - 00000000bfec4000 (ACPI NVS)
 BIOS-e820: 00000000bfec4000 - 00000000bfeff000 (reserved)
 BIOS-e820: 00000000bff00000 - 00000000c0000000 (reserved)
 BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
 BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)
 BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
 BIOS-e820: 00000000ff000000 - 0000000100000000 (reserved)
 BIOS-e820: 0000000100000000 - 0000000a40000000 (usable)
DMI present.
SMBIOS version 2.6 @ 0xF6B90
DMI: Acer G540 M2/G540 M2, BIOS P05   06/24/2009
Phoenix BIOS detected: BIOS may corrupt low RAM, working around it.
e820 update range: 0000000000000000 - 0000000000010000 (usable) ==> (reserved)
e820 update range: 0000000000000000 - 0000000000001000 (usable) ==> (reserved)
e820 remove range: 00000000000a0000 - 0000000000100000 (usable)
last_pfn = 0xa40000 max_arch_pfn = 0x400000000
MTRR default type: uncachable
MTRR fixed ranges enabled:
  00000-9FFFF write-back
  A0000-BFFFF uncachable
  C0000-CFFFF write-protect
  D0000-DFFFF uncachable
  E0000-FFFFF write-protect
MTRR variable ranges enabled:
  0 base 00C0000000 mask FFC0000000 uncachable
  1 base 0000000000 mask F800000000 write-back
  2 base 0800000000 mask FE00000000 write-back
  3 base 0A00000000 mask FFC0000000 write-back
  4 base 00BFF00000 mask FFFFF00000 uncachable
  5 disabled
  6 disabled
  7 disabled
x86 PAT enabled: cpu 0, old 0x7040600070406, new 0x7010600070106
original variable MTRRs
reg 0, base: 3GB, range: 1GB, type UC
reg 1, base: 0GB, range: 32GB, type WB
reg 2, base: 32GB, range: 8GB, type WB
reg 3, base: 40GB, range: 1GB, type WB
reg 4, base: 3071MB, range: 1MB, type UC
total RAM covered: 40959M
 gran_size: 64K         chunk_size: 64K         num_reg: 8      lose cover RAM: 37895M
 gran_size: 64K         chunk_size: 128K        num_reg: 8      lose cover RAM: 37895M
 gran_size: 64K         chunk_size: 256K        num_reg: 8      lose cover RAM: 37895M
 gran_size: 64K         chunk_size: 512K        num_reg: 8      lose cover RAM: 37895M
 gran_size: 64K         chunk_size: 1M  num_reg: 8      lose cover RAM: 37895M
 gran_size: 64K         chunk_size: 2M  num_reg: 8      lose cover RAM: 0G
 gran_size: 64K         chunk_size: 4M  num_reg: 8      lose cover RAM: 0G
 gran_size: 64K         chunk_size: 8M  num_reg: 8      lose cover RAM: 0G
 gran_size: 64K         chunk_size: 16M         num_reg: 8      lose cover RAM: 0G
 gran_size: 64K         chunk_size: 32M         num_reg: 8      lose cover RAM: 0G
 gran_size: 64K         chunk_size: 64M         num_reg: 8      lose cover RAM: 0G
 gran_size: 64K         chunk_size: 128M        num_reg: 8      lose cover RAM: 0G
 gran_size: 64K         chunk_size: 256M        num_reg: 8      lose cover RAM: 0G
 gran_size: 64K         chunk_size: 512M        num_reg: 8      lose cover RAM: 0G
 gran_size: 64K         chunk_size: 1G  num_reg: 8      lose cover RAM: 0G
*BAD*gran_size: 64K     chunk_size: 2G  num_reg: 8      lose cover RAM: -1G
 gran_size: 128K        chunk_size: 128K        num_reg: 8      lose cover RAM: 37895M
 gran_size: 128K        chunk_size: 256K        num_reg: 8      lose cover RAM: 37895M
 gran_size: 128K        chunk_size: 512K        num_reg: 8      lose cover RAM: 37895M
 gran_size: 128K        chunk_size: 1M  num_reg: 8      lose cover RAM: 37895M
 gran_size: 128K        chunk_size: 2M  num_reg: 8      lose cover RAM: 0G
 gran_size: 128K        chunk_size: 4M  num_reg: 8      lose cover RAM: 0G
 gran_size: 128K        chunk_size: 8M  num_reg: 8      lose cover RAM: 0G
 gran_size: 128K        chunk_size: 16M         num_reg: 8      lose cover RAM: 0G
 gran_size: 128K        chunk_size: 32M         num_reg: 8      lose cover RAM: 0G
 gran_size: 128K        chunk_size: 64M         num_reg: 8      lose cover RAM: 0G
 gran_size: 128K        chunk_size: 128M        num_reg: 8      lose cover RAM: 0G
 gran_size: 128K        chunk_size: 256M        num_reg: 8      lose cover RAM: 0G
 gran_size: 128K        chunk_size: 512M        num_reg: 8      lose cover RAM: 0G
 gran_size: 128K        chunk_size: 1G  num_reg: 8      lose cover RAM: 0G
*BAD*gran_size: 128K    chunk_size: 2G  num_reg: 8      lose cover RAM: -1G
 gran_size: 256K        chunk_size: 256K        num_reg: 8      lose cover RAM: 37895M
 gran_size: 256K        chunk_size: 512K        num_reg: 8      lose cover RAM: 37895M
 gran_size: 256K        chunk_size: 1M  num_reg: 8      lose cover RAM: 37895M
 gran_size: 256K        chunk_size: 2M  num_reg: 8      lose cover RAM: 0G
 gran_size: 256K        chunk_size: 4M  num_reg: 8      lose cover RAM: 0G
 gran_size: 256K        chunk_size: 8M  num_reg: 8      lose cover RAM: 0G
 gran_size: 256K        chunk_size: 16M         num_reg: 8      lose cover RAM: 0G
 gran_size: 256K        chunk_size: 32M         num_reg: 8      lose cover RAM: 0G
 gran_size: 256K        chunk_size: 64M         num_reg: 8      lose cover RAM: 0G
 gran_size: 256K        chunk_size: 128M        num_reg: 8      lose cover RAM: 0G
 gran_size: 256K        chunk_size: 256M        num_reg: 8      lose cover RAM: 0G
gran_size: 256K        chunk_size: 512M        num_reg: 8      lose cover RAM: 0G
 gran_size: 256K        chunk_size: 1G  num_reg: 8      lose cover RAM: 0G
*BAD*gran_size: 256K    chunk_size: 2G  num_reg: 8      lose cover RAM: -1G
 gran_size: 512K        chunk_size: 512K        num_reg: 8      lose cover RAM: 37895M
 gran_size: 512K        chunk_size: 1M  num_reg: 8      lose cover RAM: 37895M
 gran_size: 512K        chunk_size: 2M  num_reg: 8      lose cover RAM: 0G
 gran_size: 512K        chunk_size: 4M  num_reg: 8      lose cover RAM: 0G
 gran_size: 512K        chunk_size: 8M  num_reg: 8      lose cover RAM: 0G
 gran_size: 512K        chunk_size: 16M         num_reg: 8      lose cover RAM: 0G
 gran_size: 512K        chunk_size: 32M         num_reg: 8      lose cover RAM: 0G
 gran_size: 512K        chunk_size: 64M         num_reg: 8      lose cover RAM: 0G
 gran_size: 512K        chunk_size: 128M        num_reg: 8      lose cover RAM: 0G
 gran_size: 512K        chunk_size: 256M        num_reg: 8      lose cover RAM: 0G
 gran_size: 512K        chunk_size: 512M        num_reg: 8      lose cover RAM: 0G
 gran_size: 512K        chunk_size: 1G  num_reg: 8      lose cover RAM: 0G
*BAD*gran_size: 512K    chunk_size: 2G  num_reg: 8      lose cover RAM: -1G
 gran_size: 1M  chunk_size: 1M  num_reg: 8      lose cover RAM: 37895M
 gran_size: 1M  chunk_size: 2M  num_reg: 8      lose cover RAM: 0G
 gran_size: 1M  chunk_size: 4M  num_reg: 8      lose cover RAM: 0G
 gran_size: 1M  chunk_size: 8M  num_reg: 8      lose cover RAM: 0G
 gran_size: 1M  chunk_size: 16M         num_reg: 8      lose cover RAM: 0G
 gran_size: 1M  chunk_size: 32M         num_reg: 8      lose cover RAM: 0G
 gran_size: 1M  chunk_size: 64M         num_reg: 8      lose cover RAM: 0G
 gran_size: 1M  chunk_size: 128M        num_reg: 8      lose cover RAM: 0G
 gran_size: 1M  chunk_size: 256M        num_reg: 8      lose cover RAM: 0G
 gran_size: 1M  chunk_size: 512M        num_reg: 8      lose cover RAM: 0G
 gran_size: 1M  chunk_size: 1G  num_reg: 8      lose cover RAM: 0G
*BAD*gran_size: 1M      chunk_size: 2G  num_reg: 8      lose cover RAM: -1G
 gran_size: 2M  chunk_size: 2M  num_reg: 8      lose cover RAM: 37895M
 gran_size: 2M  chunk_size: 4M  num_reg: 8      lose cover RAM: 1M
 gran_size: 2M  chunk_size: 8M  num_reg: 8      lose cover RAM: 1M
 gran_size: 2M  chunk_size: 16M         num_reg: 8      lose cover RAM: 1M
 gran_size: 2M  chunk_size: 32M         num_reg: 8      lose cover RAM: 1M
 gran_size: 2M  chunk_size: 64M         num_reg: 8      lose cover RAM: 1M
 gran_size: 2M  chunk_size: 128M        num_reg: 8      lose cover RAM: 1M
 gran_size: 2M  chunk_size: 256M        num_reg: 8      lose cover RAM: 1M
 gran_size: 2M  chunk_size: 512M        num_reg: 8      lose cover RAM: 1M
 gran_size: 2M  chunk_size: 1G  num_reg: 8      lose cover RAM: 1M
*BAD*gran_size: 2M      chunk_size: 2G  num_reg: 8      lose cover RAM: -1023M
 gran_size: 4M  chunk_size: 4M  num_reg: 8      lose cover RAM: 37895M
 gran_size: 4M  chunk_size: 8M  num_reg: 8      lose cover RAM: 3M
 gran_size: 4M  chunk_size: 16M         num_reg: 8      lose cover RAM: 3M
gran_size: 4M  chunk_size: 32M         num_reg: 8      lose cover RAM: 3M
 gran_size: 4M  chunk_size: 64M         num_reg: 8      lose cover RAM: 3M
 gran_size: 4M  chunk_size: 128M        num_reg: 8      lose cover RAM: 3M
 gran_size: 4M  chunk_size: 256M        num_reg: 8      lose cover RAM: 3M
 gran_size: 4M  chunk_size: 512M        num_reg: 8      lose cover RAM: 3M
 gran_size: 4M  chunk_size: 1G  num_reg: 8      lose cover RAM: 3M
*BAD*gran_size: 4M      chunk_size: 2G  num_reg: 8      lose cover RAM: -1021M
 gran_size: 8M  chunk_size: 8M  num_reg: 8      lose cover RAM: 37895M
 gran_size: 8M  chunk_size: 16M         num_reg: 8      lose cover RAM: 7M
 gran_size: 8M  chunk_size: 32M         num_reg: 8      lose cover RAM: 7M
 gran_size: 8M  chunk_size: 64M         num_reg: 8      lose cover RAM: 7M
 gran_size: 8M  chunk_size: 128M        num_reg: 8      lose cover RAM: 7M
 gran_size: 8M  chunk_size: 256M        num_reg: 8      lose cover RAM: 7M
 gran_size: 8M  chunk_size: 512M        num_reg: 8      lose cover RAM: 7M
 gran_size: 8M  chunk_size: 1G  num_reg: 8      lose cover RAM: 7M
*BAD*gran_size: 8M      chunk_size: 2G  num_reg: 8      lose cover RAM: -1017M
 gran_size: 16M         chunk_size: 16M         num_reg: 8      lose cover RAM: 33807M
 gran_size: 16M         chunk_size: 32M         num_reg: 8      lose cover RAM: 15M
 gran_size: 16M         chunk_size: 64M         num_reg: 8      lose cover RAM: 15M
 gran_size: 16M         chunk_size: 128M        num_reg: 8      lose cover RAM: 15M
 gran_size: 16M         chunk_size: 256M        num_reg: 8      lose cover RAM: 15M
 gran_size: 16M         chunk_size: 512M        num_reg: 8      lose cover RAM: 15M
 gran_size: 16M         chunk_size: 1G  num_reg: 8      lose cover RAM: 15M
*BAD*gran_size: 16M     chunk_size: 2G  num_reg: 8      lose cover RAM: -1009M
 gran_size: 32M         chunk_size: 32M         num_reg: 8      lose cover RAM: 25631M
 gran_size: 32M         chunk_size: 64M         num_reg: 8      lose cover RAM: 31M
 gran_size: 32M         chunk_size: 128M        num_reg: 8      lose cover RAM: 31M
 gran_size: 32M         chunk_size: 256M        num_reg: 8      lose cover RAM: 31M
 gran_size: 32M         chunk_size: 512M        num_reg: 8      lose cover RAM: 31M
 gran_size: 32M         chunk_size: 1G  num_reg: 8      lose cover RAM: 31M
*BAD*gran_size: 32M     chunk_size: 2G  num_reg: 8      lose cover RAM: -993M
 gran_size: 64M         chunk_size: 64M         num_reg: 8      lose cover RAM: 9279M
 gran_size: 64M         chunk_size: 128M        num_reg: 8      lose cover RAM: 63M
 gran_size: 64M         chunk_size: 256M        num_reg: 8      lose cover RAM: 63M
 gran_size: 64M         chunk_size: 512M        num_reg: 8      lose cover RAM: 63M
 gran_size: 64M         chunk_size: 1G  num_reg: 8      lose cover RAM: 63M
*BAD*gran_size: 64M     chunk_size: 2G  num_reg: 8      lose cover RAM: -961M
 gran_size: 128M        chunk_size: 128M        num_reg: 8      lose cover RAM: 1151M
 gran_size: 128M        chunk_size: 256M        num_reg: 8      lose cover RAM: 127M
 gran_size: 128M        chunk_size: 512M        num_reg: 8      lose cover RAM: 127M
 gran_size: 128M        chunk_size: 1G  num_reg: 8      lose cover RAM: 127M
*BAD*gran_size: 128M    chunk_size: 2G  num_reg: 8      lose cover RAM: -897M
 gran_size: 256M        chunk_size: 256M        num_reg: 8      lose cover RAM: 255M
 gran_size: 256M        chunk_size: 512M        num_reg: 8      lose cover RAM: 255M
 gran_size: 256M        chunk_size: 1G  num_reg: 8      lose cover RAM: 255M
*BAD*gran_size: 256M    chunk_size: 2G  num_reg: 8      lose cover RAM: -769M
 gran_size: 512M        chunk_size: 512M        num_reg: 7      lose cover RAM: 511M
 gran_size: 512M        chunk_size: 1G  num_reg: 8      lose cover RAM: 511M
*BAD*gran_size: 512M    chunk_size: 2G  num_reg: 8      lose cover RAM: -513M
 gran_size: 1G  chunk_size: 1G  num_reg: 6      lose cover RAM: 1023M
 gran_size: 1G  chunk_size: 2G  num_reg: 7      lose cover RAM: 1023M
 gran_size: 2G  chunk_size: 2G  num_reg: 5      lose cover RAM: 2047M
mtrr_cleanup: can not find optimal value
please specify mtrr_gran_size/mtrr_chunk_size
e820 update range: 00000000bff00000 - 0000000100000000 (usable) ==> (reserved)
last_pfn = 0xbfeb0 max_arch_pfn = 0x400000000
initial memory mapped : 0 - 20000000
init_memory_mapping: 0000000000000000-00000000bfeb0000
 0000000000 - 00bfe00000 page 2M
 00bfe00000 - 00bfeb0000 page 4k
kernel direct mapping tables up to bfeb0000 @ 10000-15000
init_memory_mapping: 0000000100000000-0000000a40000000
 0100000000 - 0a40000000 page 2M
kernel direct mapping tables up to a40000000 @ 13000-3d000
RAMDISK: 37058000 - 37fef71a

Meanwhile we are using 6x8GB of RAM, the 2 new modules are the same as the 4 already in use.
I have to reboot the machine tonight for some other maintenance, then i will also check if the mtrr_cleanup values can be correctly set when changing memory remap options within the BIOS.
 
I'll check that. I remember having troubles with a BIOS-Update on that system (always crashed right after POST-screen and system freezed after ~30secs when in BIOS), so i never touched it again after finally getting it downgraded back to the previous version. Must have been about mid-2011, but i can't find the files i used back then, so i can't tell what version i tried to flash.

But it seems to be the PCI memory hole generating the warning messages and "hiding" the 8GB RAM - changing the granularity doesn't have any effect besides the *BAD*gran size messages appear at different positions, unfortunately the BIOS doesn't have any option for disabling the memory hole for 64bit systems. Maybe an update will fix this.