Ceci est une ancienne révision du document !
Gestion avancée de l'énergie du processeur
Les C-states sont des états de veille des coeurs du processeur. Le but de ce tutoriel est de voir une méthode pour gérer les C-states sur Linux. Cela est utile dans le cas où la gestion d'énergie du processeur est mal faite et provoque ainsi un gel aléatoire du système. Cela s'observe notamment sur les ordinateurs peu chers avec processeur Intel Bay Trail et quelques Intel Celeron qui sont basés sur les processeurs précédemment cités.
Pré-requis
- Disposer des droits d'administration.
- installer l'outil cpupower en installant linux-tools-common linux-tools-generic
Bloquer les C-states via le BIOS
Il arrive que le BIOS contienne un paramètre "C-states control" pour activer/désactiver les C-states. Si l'option est disponible, désactiver les C-states via le BIOS permettra d'être sûr que c'est la cause des gels aléatoires. C'est donc la première chose à vérifier en cas de gels aléatoires.
Gestion simple des C-states
La commande
cpupower idle-info
permet de lister les C-states compatibles avec le processeur. POLL correspond à un processeur totalement actif, et plus on avance dans les C-states, plus le processeur est partiellement en veille. On fait correspondre la valeur 0 à POLL, 1 au premier C-state, …
Afin de bloquer logiciellement les C-states, deux paramètres à passer à Grub sont importants ici:
- intel_idle.max_cstate=N
- processor.max_cstate=N
où N est à remplacer par le numéro au dernier C-state qui peut être utilisé. Si par exemple le 4ème C-state est mal géré par le noyau Linux et que les 3 premiers ne posent pas problème, alors on remplace N par 3 pour éviter les gels.
En règle générale, sur des processeurs Intel Bay Trail, le paramètre intel_idle.max_cstate=1 suffit à empêcher les gels.
Voir aussi
- Un fil traitant du sujet sur le forum ubuntu-fr
Contributeurs principaux : Naziel
Basé sur « Processeurs sous Linux : gestion de l’énergie et contrôle de la fréquence » par Paul Chevalier .