Originally Posted by LlNUX
But if those methods give contradictory results, you won't know where the support was missed:
and related methods all give a very optimistic view, telling you about all the physical ram unless it is very seriously broken or fundamentally inaccessible. Even if the total ram is far above what the motherboard can support, dmidecode will still be able to see all the ram.
and related methods all give (slight underestimates of) final usable ram.
If you see memory via dmidecode that is missing in meminfo, neither tells you whether it is bad memory vs. motherboard doesn't support that much vs. BIOS doesn't support that much vs. BIOS misconfigured vs. Linux kernel doesn't support that much vs. Linux misconfigured.
To start to divide up those possibilities, you can look at the BIOS memory map that is near the beginning of the output of the dmesg
That will tell you what ram the BIOS allows the OS to use. Ram not listed there can't be used by Linux no matter how you configure Linux nor which Linux kernel you have. Ram listed there can be used by Linux so if your current Linux kernel can't use it, you can change that.