LinuxQuestions.org

LinuxQuestions.org (/questions/)
-   Linux - Hardware (https://www.linuxquestions.org/questions/linux-hardware-18/)
-   -   4GB RAM shows only 3GB on a 3.2.0 686-pae kernel (using LMDE) (https://www.linuxquestions.org/questions/linux-hardware-18/4gb-ram-shows-only-3gb-on-a-3-2-0-686-pae-kernel-using-lmde-4175443265/)

azurvii 12-28-2012 11:03 AM

4GB RAM shows only 3GB on a 3.2.0 686-pae kernel (using LMDE)
 
Hey guys

It's not a new one. I did quite some research but can't find any related thread about this, sorry if it's only a simple one~
I can get only 3GB out of 4GB of my RAM.

I'm listing down the things I found on my machine:

* CPU supports PAE:
Quote:

$ cat /proc/cpuinfo | grep pae
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc arch_perfmon bts aperfmperf pni monitor vmx est tm2 xtpr pdcm dtherm
flags : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx constant_tsc arch_perfmon bts aperfmperf pni monitor vmx est tm2 xtpr pdcm dtherm
* RAM 4GB recognized by motherboard:
Quote:

$ sudo dmidecode -t 17
# dmidecode 2.11
SMBIOS 2.4 present.

Handle 0x002A, DMI type 17, 27 bytes
Memory Device
Array Handle: 0x0029
Error Information Handle: No Error
Total Width: 64 bits
Data Width: 64 bits
Size: 2048 MB
Form Factor: SODIMM
Set: None
Locator: DIMM 1
Bank Locator: Bank 0/1
Type: DDR2
Type Detail: Synchronous
Speed: Unknown
Manufacturer: Not Specified
Serial Number: Not Specified
Asset Tag: Not Specified
Part Number: Not Specified

Handle 0x002B, DMI type 17, 27 bytes
Memory Device
Array Handle: 0x0029
Error Information Handle: No Error
Total Width: 64 bits
Data Width: 64 bits
Size: 2048 MB
Form Factor: SODIMM
Set: None
Locator: DIMM 2
Bank Locator: Bank 2/3
Type: DDR2
Type Detail: Synchronous
Speed: Unknown
Manufacturer: Not Specified
Serial Number: Not Specified
Asset Tag: Not Specified
Part Number: Not Specified
* And with a PAE kernel:
Quote:

$ uname -r
3.2.0-4-686-pae
* Only 3GB available to OS:
Quote:

$ head /proc/meminfo
MemTotal: 3105568 kB
MemFree: 2316728 kB
Buffers: 53312 kB
Cached: 401400 kB
SwapCached: 0 kB
Active: 396072 kB
Inactive: 348084 kB
Active(anon): 290036 kB
Inactive(anon): 45596 kB
Active(file): 106036 kB
:banghead:

Thanks

Ser Olmy 12-28-2012 11:12 AM

dmidecode only shows that the motherboard recognizes the RAM modules, not that it is able to effectively use that memory.

Some of the addressing space between 3 and 4 gigabytes is always occupied by system resources like the PCI bus and the BIOS. The video card also uses some of this memory area for an "aperture", where blocks of video card memory can be mapped in and out as needed.

In order to make use of 4 gigabytes of physical RAM, the chipset must be able to remap physical memory in the 3-4G area to an area above 4G. Not all chipsets are able to do this.

Look for a BIOS setting that activates memory remapping. If no such option exists on your system, I'm afraid you're out of luck.

johnsfine 12-28-2012 11:15 AM

It is possible the BIOS, chipset or motherboard does not support a full 4GB and there is nothing you can do about it. The fact that the motherboard can recognize 4GB via DMI info does not imply the motherboard can use 4GB.

It is possible there is a "memory remap" or other option in BIOS setup that must be enabled in order to support a full 4GB. Reboot into the BIOS menu and look around for anything that looks like it might enable "memory remap" or some similar name or anything else related to extra ram.

azurvii 12-28-2012 11:58 AM

Thanks dudes for the hints

This Thinkpad X60 supports up to 2x2=4GB as stated in their specs.

I saw the RAM mapping in dmesg:
Code:

$ !dmesg
dmesg  | head -20
[    0.000000] Initializing cgroup subsys cpuset
[    0.000000] Initializing cgroup subsys cpu
[    0.000000] Linux version 3.2.0-4-686-pae (debian-kernel@lists.debian.org) (gcc version 4.6.3 (Debian 4.6.3-12) ) #1 SMP Debian 3.2.32-1
[    0.000000] Disabled fast string operations
[    0.000000] BIOS-provided physical RAM map:
[    0.000000]  BIOS-e820: 0000000000000000 - 000000000009f000 (usable)
[    0.000000]  BIOS-e820: 000000000009f000 - 00000000000a0000 (reserved)
[    0.000000]  BIOS-e820: 00000000000d2000 - 00000000000d4000 (reserved)
[    0.000000]  BIOS-e820: 00000000000dc000 - 0000000000100000 (reserved)
[    0.000000]  BIOS-e820: 0000000000100000 - 00000000bf6d0000 (usable)
[    0.000000]  BIOS-e820: 00000000bf6d0000 - 00000000bf6df000 (ACPI data)
[    0.000000]  BIOS-e820: 00000000bf6df000 - 00000000bf700000 (ACPI NVS)
[    0.000000]  BIOS-e820: 00000000bf700000 - 00000000c0000000 (reserved)
[    0.000000]  BIOS-e820: 00000000f0000000 - 00000000f4000000 (reserved)
[    0.000000]  BIOS-e820: 00000000fec00000 - 00000000fec10000 (reserved)
[    0.000000]  BIOS-e820: 00000000fed00000 - 00000000fed00400 (reserved)
[    0.000000]  BIOS-e820: 00000000fed14000 - 00000000fed1a000 (reserved)
[    0.000000]  BIOS-e820: 00000000fed1c000 - 00000000fed90000 (reserved)
[    0.000000]  BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
[    0.000000]  BIOS-e820: 00000000ff800000 - 0000000100000000 (reserved)

Indeed after roughly 3GB it's been reserved. I dug in BIOS but didn't see any remapping options. I'll try to do a pending BIOS upgrade later to see.

Thanks

Ser Olmy 12-28-2012 12:06 PM

This thread seems to confirm that a 3Gb chipset limitation exists on the x60.

johnsfine 12-28-2012 12:08 PM

Quote:

Originally Posted by azurvii (Post 4858559)
This Thinkpad X60 supports up to 2x2=4GB as stated in their specs.

Typically such a claim in the specs of a computer are a lie.

Most systems that claim to support a max of 4GB have no remapping option and thus support much less than 4GB.

By apparently blaming that 3GB limit on Windows XP, that spec appears to be an even more vicious lie than the typical ones.

There are some systems in which 32-bit XP is limited to 3GB while PAE Linux can use more. But this does not appear to be one of those systems. It appears that all OS's are limited to the same 3GB.

ukiuki 12-28-2012 03:04 PM

forget it ...

johnsfine 12-28-2012 03:33 PM

Quote:

Originally Posted by ukiuki (Post 4858663)
have you tried to compile your own kernel?
Try to boot with a live cd for 64bits(if your system is capable) to check if it is reading 4gb.

All that is a waste of time. The dmesg output in post #4 is conclusive. Unless the motherboard/BIOS issue could be corrected, there is nothing any OS could do.

Quote:

When the machine start do you see the bios reading 4gb of ram?
Irrelevant. Most BIOS's displays that info based on DMI info. The fact that the BIOS can read the ram's dmi info does not mean the ram can be used.

Quote:

The 1st thing to know is if the motherboard can manage 4gb,
That does seem to be the question.

Quote:

looks like it can, it normally goes with even numbers, 2gb, 4gb, 8gb, 16gb, etc, etc. I don't remember any mobo that goes with tops 3gb
You are seriously misinformed.

ukiuki 12-28-2012 04:37 PM

Quote:

Originally Posted by johnsfine (Post 4858682)
You are seriously misinformed.

Just ignore me then. Have a nice day.

Regards

azurvii 12-29-2012 01:08 AM

Quote:

Originally Posted by Ser Olmy (Post 4858565)
This thread seems to confirm that a 3Gb chipset limitation exists on the x60.

Thanks guys, it seems it's the case.
I just updated the BIOS, but nowhere I can find an option related to remapping memory.

So, there is no way to override the BIOS' mapping settings when loading the kernel?
I'm totally fine with 3GB but I am actually expecting after taking over the control from BIOS, the kernel should be configurable.

Ser Olmy 12-29-2012 08:14 AM

Quote:

Originally Posted by azurvii (Post 4858856)
So, there is no way to override the BIOS' mapping settings when loading the kernel?
I'm totally fine with 3GB but I am actually expecting after taking over the control from BIOS, the kernel should be configurable.

There would have to be a setting to override first. This is a physical/electrical limitation of the Intel 945GM chipset. If the chipset can't remap RAM in the 3G-4G area to appear above 4G, there's little the Linux kernel (or the BIOS) can do about it.

azurvii 12-29-2012 11:55 PM

Thanks Ser Olmy


All times are GMT -5. The time now is 03:57 PM.