1

Looking for information about total memory on my laptop, I've found the following but I have some doubt about the meaning.

From the dmidecode command I obtain:

Handle 0x0010, 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: 2

Handle 0x0011, DMI type 17, 34 bytes
Memory Device
    Array Handle: 0x0010
    Error Information Handle: Not Provided
    Total Width: 64 bits
    Data Width: 64 bits
    Size: 4096 MB
    Form Factor: SODIMM
    Set: None
    Locator: Bottom
    Bank Locator: CHANNEL A
    Type: DDR3
    Type Detail: Synchronous Unbuffered (Unregistered)
    Speed: 800 MHz
    Manufacturer: Kingston
    Serial Number: 5A396D76
    Asset Tag: Asset Tag: 
    Part Number: KHX1600C9S3L/4G   
    Rank: 1
    Configured Clock Speed: 800 MHz

Handle 0x0013, DMI type 20, 35 bytes
Memory Device Mapped Address
    Starting Address: 0x00000000000
    Ending Address: 0x000FFFFFFFF
    Range Size: 4 GB
    Physical Device Handle: 0x0011
    Memory Array Mapped Address Handle: 0x0016
    Partition Row Position: 1

Handle 0x0014, DMI type 17, 34 bytes
Memory Device
    Array Handle: 0x0010
    Error Information Handle: Not Provided
    Total Width: Unknown
    Data Width: Unknown
    Size: No Module Installed
    Form Factor: SODIMM
    Set: None
    Locator: Top
    Bank Locator: CHANNEL A
    Type: Unknown
    Type Detail: Unknown
    Speed: Unknown
    Manufacturer: Empty
    Serial Number: Empty
    Asset Tag: Asset Tag: 
    Part Number: Empty
    Rank: Unknown
    Configured Clock Speed: Unknown

Handle 0x0016, DMI type 19, 31 bytes
Memory Array Mapped Address
    Starting Address: 0x00000000000
    Ending Address: 0x000FFFFFFFF
    Range Size: 4 GB
    Physical Array Handle: 0x0010
    Partition Width: 255

I was thinking my HP 15g-207nl supported at max 4GB of memory, but there I see an 8GB as for the maximum capacity. Which is the truth? Then again, the file /proc/meminfo tells me this:

MemTotal:        3467664 kB
MemFree:          493996 kB
MemAvailable:    1093044 kB
Buffers:           72928 kB
Cached:           754636 kB
SwapCached:         1460 kB
Active:          1726432 kB
Inactive:         871336 kB
Active(anon):    1346256 kB
Inactive(anon):   519488 kB
Active(file):     380176 kB
Inactive(file):   351848 kB
Unevictable:          32 kB
Mlocked:              32 kB
SwapTotal:       3613692 kB
SwapFree:        3588868 kB
Dirty:               456 kB
Writeback:            40 kB
AnonPages:       1769496 kB
Mapped:           404592 kB
Shmem:             95540 kB
Slab:             178208 kB
SReclaimable:     135680 kB
SUnreclaim:        42528 kB
KernelStack:       11408 kB
PageTables:        39620 kB

I think the pc has a 4GB memory card mounted, but neither with Gibibyte or Gigabyte unit system I'm able to sum up and find those 4GB here. Where are they? And what do MemTotal, MemFree and MemAvailable precisely represent?

4
  • Without physically looking under the memory door of the laptop there to see if there is another slot available it is hard to tell if you can take it to 8GB. According to the info you posted there should be another slot which is not populated at the moment allowing you to take it to 8GB if you purchase another 4GB SODIMM.
    – Terrance
    Jan 1, 2019 at 16:03
  • This is not your model of laptop, but should be relatively close to the info of showing how to upgrade and where the slots are at: support.hp.com/id-en/document/c04780768
    – Terrance
    Jan 1, 2019 at 16:11
  • @Terrance You tell the truth, some years ago my friend opened this pc to check if I cold add some memory and I remember he said there was only one slot. Now reading these informations in bash I came out with some doubt again. So it could be that BIOS(dmidecode) sees two slots, but my motherboard has only one.
    – glc78
    Jan 1, 2019 at 18:02
  • Yeah, motherboard manufacturers will sometimes make the base model of the motherboard then build cheaper boards for OEMs, like HP, that can be missing slots, expandability, etc. Unfortunately, this can also mean missing slots for memory expansion. They do this for cost saving. There could be a chance that replacing the 4GB with an 8GB might work, but there is also a chance that the board is designed to handle up to 4GB per channel / slot.
    – Terrance
    Jan 1, 2019 at 18:53

1 Answer 1

1

dmidecode

This program attempts to gather information about your hardware from your BIOS. Your BIOS should correctly report the maximum supported RAM on your computer.

In this case, it is reporting a maximum 8 GB of RAM. I would guess that this is most likely correct. The official specifications for your laptop don't list a maximum RAM capacity, just that it came with 4 GB of RAM. Most likely, your motherboard came with support for more RAM than was originally installed.

From man dmidecode:

dmidecode is a tool for dumping a computer's DMI (some say SMBIOS) table contents in a human-readable format. This table contains a description of the system's hardware components, as well as other useful pieces of information such as serial numbers and BIOS revision. Thanks to this table, you can retrieve this information without having to probe for the actual hardware.

meminfo

/proc/meminfo reports current memory usage on your system, along with some other information about your memory.

MemTotal is the total usable memory in your system. In your case, it says that you have 3467664 kB total RAM. That is approximately 3.5 GB. It's not unusual for digital storage to have less actual capacity than advertised capacity, so this is most likely in line with what dmidecode reported — that is, the advertised capacity of your RAM.

MemFree is the amount of memory not being used by your system at all. The Linux kernel allows memory to be used for caching frequently-used files so that you can access their data faster in addition to currently running programs. MemFree is the total memory that's not being used for any of those things.

MemAvailable is the amount of memory that can be given to programs to use. The kernel won't reallocate the memory used for currently running programs, but it will reallocate memory used for caching to programs that need it, because it can just read that data back from the hard disk if it's needed again. Therefore, MemAvailable is the total memory minus the memory used by currently running programs.

See man proc for more detailed information on the meminfo file.

2
  • 1
    I was expecting 4GB would become 3.7GB with the Giga/Gibi transformation and not 3.45, so my question. In the meantime I found a more readable top command for this, that confirms what you said abou the three memory's definitions.
    – glc78
    Jan 1, 2019 at 17:54
  • @glc78 Your board might be sharing RAM with video memory. You can try installing inxi by sudo apt install inxi then run inxi -M which will show the Motherboard manufacturer and model that can be looked up to see the specs on it if it has shared memory or not.
    – Terrance
    Jan 1, 2019 at 18:55

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .