GNU/Linux >> Znalost Linux >  >> Linux

Mimo MTRR při startu

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:

  1. 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).
  2. 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?


Linux
  1. /proc/[pid]/pagemaps a /proc/[pid]/maps | linux

  2. Kdy mám použít /dev/shm/ a kdy /tmp/?

  3. Změna velikosti spouštěcího oddílu

  1. Proč se pro linux doporučuje 100MB spouštěcí oddíl ext2?

  2. unix:///var/run/supervisor.sock žádný takový soubor

  3. Obnovte smazaný soubor, do kterého se právě zapisuje

  1. /sys/ dokumentace?

  2. echo 3 > /proc/sys/vm/drop_caches - Oprávnění odepřeno jako root

  3. Měly by weby žít ve /var/ nebo /usr/ podle doporučeného použití?