[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: BIOS erkennt 5GB, bigmem-Kernel aber nur 3,3GB



Matthias Meyer <matthias.meyer@gmx.li> wrote:
> Sven Hartge wrote:
>> Matthias Meyer <Matthias.Meyer@gmx.li> wrote:
 
>>> Ich habe einen Compaq DC7600 mit Intel C2D 2x2.80GHz
>>> flags           : fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge
>>> mca cmov pat pse36 clflush dts acpi mmx fxsr sse sse2 ss ht tm pbe nx lm
>>> constant_tsc pebs bts pni dtes64 monitor ds_cpl cid cx16 xtpr lahf_lm
>>> address sizes   : 36 bits physical, 48 bits virtual
>> 
>>> und Host bridge: Intel Corporation 82945G/GZ/P/PL Memory Controller Hub
>>> (rev 02)
>> 
>>> Obwohl das BIOS 5GB erkennt, werden vom  2.6.32-5-686-bigmem Kernel nur
>>> 3,3GB erkannt.
>>> # grep -i mem /var/log/dmesg
>>> [    0.000000] Linux version 2.6.32-5-686-bigmem (Debian 2.6.32-35)
>>> [    (dannf@debian.org)
>>> (gcc version 4.3.5 (Debian 4.3.5-4) ) #1 SMP Mon Jun 13 05:03:09 UTC 2011
>>> [    0.000000] initial memory mapped : 0 - 01a00000
>>> [    0.000000] init_memory_mapping: 0000000000000000-00000000377fe000
>>> [    0.000000] 2431MB HIGHMEM available.
>>> [    0.000000] 887MB LOWMEM available.
>> 
>> Bitte mal die ersten 150 Zeilen von /var/log/dmesg posten, dort stehen
>> alle relevanten Speicher-Infos drin, vor allem das Mapping.
>> 
>>> Das gleiche übrigens auch beim 2.6.32-5-amd64 Kernel.
>> 
>> Dann riecht das nach defektem BIOS.
>> 
>>> Weiß jemand was ich machen könnte um die vollen 5GB zu erreichen?
>> 
>> BIOS auf den aktuellen Stand bringen wäre ein erster Schritt.

> Ich werd mich mal nach nem BIOS-Update umschauen.

Solltest du. Das BIOS berichtet dem Kernel nur von 4GB RAM.

,----
| [    0.000000] BIOS-provided physical RAM map:
| [    0.000000]  BIOS-e820: 0000000000000000 - 000000000009fc00 (usable)
| [    0.000000]  BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved)
| [    0.000000]  BIOS-e820: 00000000000e8000 - 0000000000100000 (reserved)
| [    0.000000]  BIOS-e820: 0000000000100000 - 00000000cf7cf300 (usable)
| [    0.000000]  BIOS-e820: 00000000cf7cf300 - 00000000d0000000 (reserved)
| [    0.000000]  BIOS-e820: 00000000f0000000 - 00000000f4000000 (reserved)
| [    0.000000]  BIOS-e820: 00000000fec00000 - 0000000100000000 (reserved)
`----

Wie man sieht, ist bei 0x100000000 Schluss (wobei das eigentlich ein Bug
ist, es sollte 0x0ffffffff lauten, aber egal), was genau 2^32 Bytes RAM
sind.

Und das BIOS remappt den vom PCI-Raum überdeckten Bereich nicht nach
oberhalb von 4GB, das sähe dann z.B. so aus:

,----[mein Rechner, 4GB RAM]
| [    0.000000] BIOS-provided physical RAM map:
| [    0.000000]  BIOS-e820: 0000000000000000 - 000000000009d400 (usable)
| [    0.000000]  BIOS-e820: 000000000009d400 - 00000000000a0000 (reserved)
| [    0.000000]  BIOS-e820: 00000000000e4000 - 0000000000100000 (reserved)
| [    0.000000]  BIOS-e820: 0000000000100000 - 00000000bff70000 (usable)
| [    0.000000]  BIOS-e820: 00000000bff70000 - 00000000bff7e000 (ACPI data)
| [    0.000000]  BIOS-e820: 00000000bff7e000 - 00000000bffd0000 (ACPI NVS)
| [    0.000000]  BIOS-e820: 00000000bffd0000 - 00000000c0000000 (reserved)
| [    0.000000]  BIOS-e820: 00000000fee00000 - 00000000fee01000 (reserved)
| [    0.000000]  BIOS-e820: 00000000fff00000 - 0000000100000000 (reserved)
| [    0.000000]  BIOS-e820: 0000000100000000 - 0000000140000000 (usable)
`----

Hier sieht man, wie von 0x100000000 - 0x140000000 ein überdeckter
Speicherberich umgemappt wurde, damit er verfügbar ist.

Dein Problem liegt also im BIOS und nicht im Kernel. Der macht nur, was
ihm gesagt wird.

S°

-- 
Sigmentation fault. Core dumped.


Reply to: