Díky harrymcu jsem zjistil, že můžete skutečně přepsat /proc/mtrr. Vložil jsem následující do /etc/rc.local, restartoval jsem a moje tabulka MTRR byla správná.
echo "disable=7" > /proc/mtrr
echo "disable=6" > /proc/mtrr
echo "disable=5" > /proc/mtrr
echo "disable=4" > /proc/mtrr
echo "disable=3" > /proc/mtrr
echo "disable=2" > /proc/mtrr
echo "disable=1" > /proc/mtrr
echo "disable=0" > /proc/mtrr
echo "base=0x000000000 size=0x40000000 type=write-back" > /proc/mtrr
echo "base=0x03f500000 size=0x00100000 type=uncachable" > /proc/mtrr
echo "base=0x03f600000 size=0x00200000 type=uncachable" > /proc/mtrr
echo "base=0x03f800000 size=0x00800000 type=write-back" > /proc/mtrr
echo "base=0x040000000 size=0x10000000 type=write-combining" > /proc/mtrr
Po rozhovoru s několika lidmi, kteří se zabývají vývojem jádra, jsem byl informován, že CONFIG_MTRR_SANITIZER
byl v několika posledních jádrech poškozen, a proto to v minulosti fungovalo i u jiných.
Citace z odpovědi na vaši vlastní otázku na fórech Arch Linux:
Z dmesg je snadné vidět, že mu během inicializace i915/drmgraphics dojde mtrr. Nemám s tímto problémem žádné konkrétní zkušenosti, ale zde jsou mé návrhy:
- Zaveďte pomocí 'mtrr_spare_reg_nr=2' a možná budete potřebovat také 'enable_mtrr_cleanup=1 (přidat do řádku jádra v/boot/grub/menu.lst).
- Vyzkoušejte jádro 2.6.38 z [testing].
Jak vypadá váš /proc/mtrr, váš ATOM CPU má pouze 8 MTRR a opravdu jsou všechny vypotřebované. Způsob, jakým je paměť rozdělena na takové malé fragmenty, je však záhadný. Obecně může být takový problém způsoben :
- Systém BIOS – vyhledejte parametry, které způsobují alokaci paměti pro zařízení.
- Grafická karta, která mohla sdílet paměť s CPU a kterou BIOS může způsobit, že bude brutálně přidělena uprostřed paměti.
- Ovladač grafické karty – vyhledejte nejnovější verzi.
- Nesprávně nakonfigurované jádro.
Největší hádanka, kterou vidím, je, že /proc/mtrr říká, že máte 8 GB. Ale v /proc/cpuinfo položka 'flags' neobsahuje 'lm', o kterém Arch64 FAQ říká, že je vyžadováno, aby byl procesor kompatibilní s x86_64. FAQ dále říká:
Všimněte si, že Arch32 ve výchozím nastavení nepodporuje více než 3 GB RAM:pokud máte více, musíte se obrátit na Arch64.
Zdá se tedy, že máte Arch32 a 8GB RAM, což dokumentace odporuje.
Mohl byste tuto hádanku trochu osvětlit?