GNU/Linux >> Tutoriels Linux >  >> Linux

Plus de MTRR au démarrage

Grâce à harrymc, j'ai découvert que vous pouvez réellement réécrire /proc/mtrr. J'ai mis ce qui suit dans /etc/rc.local, redémarré et ma table MTRR était correcte.

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

De plus, après avoir parlé à quelques personnes impliquées dans le développement du noyau, j'ai été informé que CONFIG_MTRR_SANITIZER a été cassé pour les derniers noyaux, d'où la raison pour laquelle cela a fonctionné pour d'autres dans le passé.


Citant la réponse à votre propre question sur les forums Arch Linux :

À partir du dmesg, il est facile de voir qu'il manque de mtrr lors de l'initialisation de i915/drmgraphics. Je n'ai aucune expérience spécifique avec ce problème, mais voici mes suggestions :

  1. Démarrez avec 'mtrr_spare_reg_nr=2' et vous aurez peut-être aussi besoin de 'enable_mtrr_cleanup=1(add to kernel line in/boot/grub/menu.lst).
  2. Essayez le noyau 2.6.38 depuis [testing].

D'après l'apparence de votre /proc/mtrr, votre processeur ATOM n'a que 8 MTRR, et ils sont vraiment tous épuisés. Cependant, la façon dont la mémoire est divisée en si petits fragments est déroutante. En général, un tel problème peut être causé par :

  • Le BIOS - recherchez les paramètres qui provoquent l'allocation de mémoire pour les appareils.
  • La carte graphique qui pourrait avoir partagé de la mémoire avec le CPU et que le BIOS pourrait faire en sorte qu'elle soit allouée brutalement au milieu de la mémoire.
  • Le pilote de la carte graphique :recherchez la dernière version.
  • Un noyau mal configuré.

Le plus grand casse-tête que je peux voir est que /proc/mtrr indique que vous avez 8 Go. Mais dans /proc/cpuinfo l'entrée 'flags' ne contient pas 'lm', ce qui, selon la FAQ Arch64, est nécessaire pour que le processeur soit compatible x86_64. La FAQ dit en outre :

Notez que Arch32 ne supporte pas plus de 3Go de RAM par défaut :il faut vous tourner vers Arch64 si vous en avez plus.

Il semble donc que vous ayez Arch32 et 8 Go de RAM, ce que la documentation contredit.
Pourriez-vous peut-être jeter un peu de lumière sur cette énigme ?


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

  2. Quand dois-je utiliser /dev/shm/ et quand dois-je utiliser /tmp/?

  3. Redimensionner la partition de démarrage

  4. Pourquoi une partition de démarrage ext2 de 100 Mo est-elle recommandée pour Linux ?

  5. unix:///var/run/supervisor.sock aucun fichier de ce type

Linux – /sbin/init n'existe pas ?

Fichiers /proc/cpuinfo et /proc/meminfo sous Linux

Comprendre les fichiers /proc/mounts, /etc/mtab et /proc/partitions

echo 3 > /proc/sys/vm/drop_caches - Autorisation refusée en tant que root

Quel fichier dans /proc est lu par le noyau lors du processus de démarrage ?

echo ou print /dev/stdin /dev/stdout /dev/stderr