I have a Lenovo motherboard with 2 4GB DIMMs. I see the 8GB when selecting and running the a memory test from the Ubuntu Grub bootup menu.
However when I boot up ubuntu 16.04, free only shows 4GB.
When I run dmidecode. I see the two 4GB DIMMs:
BIOS Information
Vendor: LENOVO
Version: I7KT32AUS
Release Date: 12/26/2013
Address: 0xF0000
Runtime Size: 64 kB
ROM Size: 4096 kB
...
Handle 0x0017, DMI type 16, 23 bytes
Physical Memory Array
Location: System Board Or Motherboard
Use: System Memory
Error Correction Type: None
Maximum Capacity: 8 GB
Error Information Handle: Not Provided
Number Of Devices: 4
Handle 0x0018, DMI type 19, 31 bytes
Memory Array Mapped Address
Starting Address: 0x00000000000
Ending Address: 0x000FFFFFFFF
Range Size: 4 GB
Physical Array Handle: 0x0017
Partition Width: 255
Handle 0x0019, DMI type 17, 34 bytes
Memory Device
Array Handle: 0x0017
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: No Module Installed
Form Factor: SODIMM
Set: None
Locator: DIMM 0
Bank Locator: CHANNEL B
Type: DDR3
Type Detail: None
Speed: Unknown
Manufacturer: A1_Manufacturer2
Serial Number: A1_SerialNum2
Asset Tag: A1_AssetTagNum2
Part Number: A1_PartNum2
Rank: Unknown
Configured Clock Speed: Unknown
Handle 0x001A, DMI type 17, 34 bytes
Memory Device
Array Handle: 0x0017
Error Information Handle: Not Provided
Total Width: 64 bits
Data Width: 64 bits
Size: 4096 MB
Form Factor: DIMM
Set: None
Locator: DIMM 1
Bank Locator: CHANNEL B
Type: DDR3
Type Detail: Synchronous Unbuffered (Unregistered)
Speed: 1600 MHz
Manufacturer: Samsung
Serial Number: 93FB5498
Asset Tag: A1_AssetTagNum3
Part Number: M378B5173QH0-CK0
Rank: 1
Configured Clock Speed: 1600 MHz
What seems odd and may explain the discrepancy is that I have one 4 GB Memory Array Mapped Address and one 4 GB Device Mapped Address.
Handle 0x0018, DMI type 19, 31 bytes
Memory Array Mapped Address
Starting Address: 0x00000000000
Ending Address: 0x000FFFFFFFF
Range Size: 4 GB
Physical Array Handle: 0x0017
Partition Width: 255
....
Memory Device Mapped Address
Starting Address: 0x00000000000
Ending Address: 0x000FFFFFFFF
Range Size: 4 GB
Physical Device Handle: 0x001A
Memory Array Mapped Address Handle: 0x0018
Partition Row Position: Unknown
Interleave Position: Unknown
Interleaved Data Depth: Unknown
I have not been able to find out what a Memory Device is and what a Memory Array is and what can set that.
More generally any thoughts on why only around 4GB is available and seen by free?