Portál AbcLinuxu, 4. května 2025 05:47
mem=4G
kernelu. Při zjišťování dostupné paměti RAM ale různé programy ukazovaly hodnotu pouze 3,74 GB.
Příklad výpisu z dmesg
:
BIOS-provided physical RAM map: BIOS-e820: 0000000000000000 - 000000000009f800 (usable) BIOS-e820: 000000000009f800 - 00000000000a0000 (reserved) BIOS-e820: 00000000000f0000 - 0000000000100000 (reserved) BIOS-e820: 0000000000100000 - 00000000dfd78000 (usable) BIOS-e820: 00000000dfee0000 - 00000000dfee3000 (ACPI NVS) BIOS-e820: 00000000dfee3000 - 00000000dfef0000 (ACPI data) BIOS-e820: 00000000dfef0000 - 00000000dff00000 (reserved) BIOS-e820: 00000000f0000000 - 00000000f4000000 (reserved) BIOS-e820: 00000000fec00000 - 0000000100000000 (reserved) BIOS-e820: 0000000100000000 - 0000000120000000 (usable)Všimněte si, že north bridge prokládá úseky použitelné RAMky jinými úseky, do kterých jsou mapované různé IO funkce. A pokud správně koukám, v mapě zbyl i nějaký „vzduch”. Takže kus použitelné RAMky přeteče přes 4 GB. Shodou okolností to podle mého odpovídá tomu poslednímu úseku, tj. 0,5 GB od
0x100000000
výše. Podle mého, pokud Vy kernelu nastavíte strop na 4 GB, tak oříznete tu oblast fyzického adresního prostoru CPU, co je hardwarem mapována nad 4 GB, takže zůstane nevyužita.
Dokumentace kernelu je sice v tomto bodě dost mlhavá, mluví obvykle o „system memory”, takže není jasné, zda se mluví o RAMce nebo o „fyzickém adresním prostoru CPU“ (adresa určená piny A0-A35 v patici procesoru). Podle mého z této situace plyne, že kernelovým command-line argumentem mem=4G
omezíte nikoli RAMku, ale fyzický adresní prostor.
Svého času jsem narazil na problém, že některé čipsety od Intelu, přestože podporují CPU s fyzickým adresním prostorem 36 bitů (ať už přes PAE nebo EM64T), mají z north bridge nadrátováno pouze 32 adresních bitů, takže de facto mrzačí fyzický adresní prostor CPU na 4 GB. Týká se to konkrétně jednoprocesorových čipsetů i915, i925 a i7221 (P4/LGA775). Tenhle problém se v úvodu zmíněné základní desky netýká (C2D a i965 umí 36 bitů), což ostatně dokazuje i BIOSem sdělená mapa e820 – u výše uvedených čipsetů nepřekročí hranici 4 GB neboli 0x100000000.
Dostal jsem tehdy od výrobce motherboardu jakési postarší PDFko od Intelu, které je dnes už spíše archivní (rok 2004), nicméně je značeno „Intel Confidential” a nikde na webu jsem ho nevygoogloval, takže si nedovolím ho zveřejnit, přestože je v podstatě neškodné. Nicméně přikládám alespoň tabulku, kde jsou hezky vidět různě velké kusy rezervovaného fyzického adresního prostoru.
Podle údajů z té tabulky bych řekl, že 512 MiB je zabráno převážně PCI a PCI-e config spacem. Řekl bych, že výše zmíněný čipset s adresním prostorem zachází ještě vcelku ohleduplně, s ohledem na to, že pro něj 4GB hranice nepředstavuje problém irqpoll
– šance, že za to můžou IRQčka, je poměrně malá, ale za vyzkoušení nic nedáte.
Dokument vytvořil: Filip Jirsák, 7.8.2007 13:53 | Poslední úprava: Käyttäjä 11133, 12.8.2007 13:44 | Další přispěvatelé: Filip Jirsák | Historie změn | Zobrazeno: 1490×
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.