Three out of Four Isn't Bad

Roger Heflin rogerheflin at gmail.com
Thu Apr 17 18:32:38 UTC 2008


Bill Davidsen wrote:
> Roger Heflin wrote:
>> Dennis Gilmore wrote:
>>> On Wednesday 16 April 2008, Bill Davidsen wrote:
>>>> I just popped another 2GB in my development machine, 2GB to 4GB RAM, 
>>>> and
>>>> only 3GB shows. Yes I looked at the 820 output, yes I tried PAE 
>>>> kernels,
>>>> yes I checked the BIOS to see the the hole options were tried, other
>>>> thoughts.
>>>>
>>>> FC6 running 2.6.22.14-72.fc6PAE, also 2.6.24.4 kernel.org build.
>>>>
>>>> dmesg hopefully attached if it doesn't get stripped again.
>>>
>>> I have a Dell D820 and while its a 64 bit system,  it has a 32 bit 
>>> chip in there somewhere so i can only use 3.25gb of thr 4gb that is 
>>> installed could very well be a hardware limitation somewhere.
>>>
>>> Dennis
>>>
>>
>> Actually, since most OSes are 32bit (read Windows) none of the bios 
>> makers set things up  so that the missing ram can be remapped over 4GB 
>> since that would be useless under windows.    So they just waste the 
>> memory generally, though sometimes there is a bios option to set 
>> things to non-windows OS, or change the memory mapping that will allow 
>> more to be used, but generally that is only with the higher end 
>> machines and even there (where a large number of the machines are used 
>> with 64bit OSes) the options don't always exist.
>>
>> On a normal desktop system generally you are out of luck and will at 
>> best get maybe 3.2-3.5 GB of ram out of 4GB, and sometimes less 
>> depending on how well be bios was setup.    The older the motherboard 
>> is the worse it gets.
>>
>> My 3 year old intel board lets me use 2.8GB out of 3GB, I am not sure 
>> how bad it would get if I added another GB, I would expect to at best 
>> get maybe .5 GB more.
>>
>> Do a "cat /proc/mtrr" to get a better idea of what the bios is telling 
>> linux to do.
>>
>> Mine looks like this:
>>
>> reg00: base=0x00000000 (   0MB), size=4096MB: write-back, count=1
>> reg01: base=0xb0000000 (2816MB), size= 256MB: uncachable, count=1
>> reg02: base=0xc0000000 (3072MB), size=1024MB: uncachable, count=1
>>
> Actually the BIOS passes the information on memory to the kernel in the 
> e820 table, physical memory description. MTRR is set by the kernel. In 
> my case (from the original dmesg):
> 
> BIOS-provided physical RAM map:
>  BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
>  BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
>  BIOS-e820: 00000000000e4000 - 0000000000100000 (reserved)
>  BIOS-e820: 0000000000100000 - 00000000c77a0000 (usable)
>  BIOS-e820: 00000000c77a0000 - 00000000c77ae000 (ACPI data)
>  BIOS-e820: 00000000c77ae000 - 00000000c77e0000 (ACPI NVS)
>  BIOS-e820: 00000000c77e0000 - 00000000c7800000 (reserved)
>  BIOS-e820: 00000000ffb80000 - 0000000100000000 (reserved)
>

Yes, but I am lazy and /proc/mtrr is much easier to read that the e820 printout, 
and does show the cachable/write-back stuff.

                               Roger




More information about the fedora-list mailing list