In several of these recent threads where memory wasn't seen, I was wondering about more easily distinguishing what part of the problem is in the kernel vs. Hardware+BIOS.
I just tested my guess at a good test for that on an 8Gb system with a kernel that can't see 8G.
To look at the beginning of dmesg, I used the command
Code:
less /var/log/dmesg
The part of that I was looking for says
Code:
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009ec00 (usable)
BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved)
BIOS-e820: 0000000000100000 - 00000000cfe0ac00 (usable)
BIOS-e820: 00000000cfe0ac00 - 00000000cfe0cc00 (ACPI NVS)
BIOS-e820: 00000000cfe0ec00 - 00000000cfe5cc00 (reserved)
BIOS-e820: 00000000cfe5cc00 - 00000000cfe5ec00 (ACPI data)
BIOS-e820: 00000000cfe5ec00 - 00000000d0000000 (reserved)
BIOS-e820: 00000000e0000000 - 00000000f0000000 (reserved)
BIOS-e820: 00000000fe000000 - 00000000ff000000 (reserved)
BIOS-e820: 00000000ffb00000 - 0000000100000000 (reserved)
BIOS-e820: 0000000100000000 - 0000000230000000 (usable)
Warning only 4GB will be used.
Use a PAE enabled kernel.
3200MB HIGHMEM available.
896MB LOWMEM available.
found SMP MP-table at 000fe710
For those who don't know how to read such things
Code:
BIOS-e820: 0000000000100000 - 00000000cfe0ac00 (usable)
The above line says there is just over 3326Mb in the area starting at the 1Mb boundary of address space.
Code:
BIOS-e820: 0000000100000000 - 0000000230000000 (usable)
The above line says there is exactly 4864Mb in the area starting at the 4Gb boundary of address space. Without a PAE enabled kernel, I can't use that.
So I have 8192Mb of ram of which
1 and a fraction are lost to the BIOS and to address space fragmentation
4864 are lost by lack of PAE
3326 and a fraction are usable.
Code:
3200MB HIGHMEM available.
896MB LOWMEM available.
I don't understand that part. Both of those have to be with the 3326 Mb that is usable. So they aren't disjoint. Is LOWMEM entirely contained within HIGHMEM or do they just overlap?
BTW from /proc/meminfo
Code:
MemTotal: 3367684 kB
divide that by 1024 to see that it is 3288 and a fraction Mb. So part of the 3326 is outside that total (but I think actually used for something, not wasted like the 4864).