Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
utilisateurs:naziel:gestion_energie_processeur [Le 03/01/2019, 19:43] naziel |
utilisateurs:naziel:gestion_energie_processeur [Le 20/02/2023, 21:59] (Version actuelle) moths-art correctif <code> auto via wiki-corrector https://forum.ubuntu-fr.org/viewtopic.php?id=2067892 |
||
---|---|---|---|
Ligne 25: | Ligne 25: | ||
La commande | La commande | ||
<code bash>cpupower idle-info</code> | <code bash>cpupower idle-info</code> | ||
- | permet de lister les C-states compatibles avec le processeur. | + | permet de lister les C-states compatibles avec le processeur. |
+ | |||
+ | Par exemple, sur un processeur Intel Core i5 4210U, voici les C-states: | ||
+ | <code bash>CPUidle driver: intel_idle | ||
+ | CPUidle governor: menu | ||
+ | analyzing CPU 0: | ||
+ | |||
+ | Number of idle states: 9 | ||
+ | Available idle states: POLL C1 C1E C3 C6 C7s C8 C9 C10 | ||
+ | POLL: | ||
+ | Flags/Description: CPUIDLE CORE POLL IDLE | ||
+ | Latency: 0 | ||
+ | Usage: 33293 | ||
+ | Duration: 3698149 | ||
+ | C1: | ||
+ | Flags/Description: MWAIT 0x00 | ||
+ | Latency: 2 | ||
+ | Usage: 10487775 | ||
+ | Duration: 3916810744 | ||
+ | C1E: | ||
+ | Flags/Description: MWAIT 0x01 | ||
+ | Latency: 10 | ||
+ | Usage: 11362373 | ||
+ | Duration: 2533863708 | ||
+ | C3: | ||
+ | Flags/Description: MWAIT 0x10 | ||
+ | Latency: 33 | ||
+ | Usage: 6611768 | ||
+ | Duration: 2724211142 | ||
+ | C6: | ||
+ | Flags/Description: MWAIT 0x20 | ||
+ | Latency: 133 | ||
+ | Usage: 1759894 | ||
+ | Duration: 1052846310 | ||
+ | C7s: | ||
+ | Flags/Description: MWAIT 0x32 | ||
+ | Latency: 166 | ||
+ | Usage: 4240156 | ||
+ | Duration: 3148722366 | ||
+ | C8: | ||
+ | Flags/Description: MWAIT 0x40 | ||
+ | Latency: 300 | ||
+ | Usage: 3673897 | ||
+ | Duration: 4457909063 | ||
+ | C9: | ||
+ | Flags/Description: MWAIT 0x50 | ||
+ | Latency: 600 | ||
+ | Usage: 2747610 | ||
+ | Duration: 7647149692 | ||
+ | C10: | ||
+ | Flags/Description: MWAIT 0x60 | ||
+ | Latency: 2600 | ||
+ | Usage: 635019 | ||
+ | Duration: 11682828891</code> | ||
POLL correspond à un processeur totalement actif, et plus on avance dans les C-states, plus le processeur est partiellement en veille. | 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, ... | On fait correspondre la valeur 0 à POLL, 1 au premier C-state, ... | ||
- | <note important>Il est contre-productif de chercher à n'être que sur POLL</note> | + | <note important>Il est contre-productif de chercher à n'être que sur POLL: le pc consommera plus d'énergie et il chauffera plus!</note> |
+ | |||
+ | Afin de voir l'utilisation des C-states, on passe la commande | ||
+ | <code bash>cpupower monitor</code> | ||
+ | ce qui permet de déduire les C-states qui pourraient poser problème. | ||
Afin de bloquer logiciellement les C-states, deux paramètres à passer à Grub sont importants ici: | Afin de bloquer logiciellement les C-states, deux paramètres à passer à Grub sont importants ici: | ||
* intel_idle.max_cstate=N | * intel_idle.max_cstate=N | ||
* processor.max_cstate=N | * processor.max_cstate=N | ||
- | où N est à remplacer par le numéro au dernier C-state qui peut être utilisé. | + | où N est à remplacer par le numéro au dernier C-state qui peut être utilisé. Le premier paramètre est souvent suffisant. \\ |
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. | 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. | ||
+ | Si vraiment aucun C-state à part POLL est correctement géré, passer le paramètre intel_idle.max_cstate=0 ne suffira pas, passer en plus idle=poll permettra de n'utiliser que POLL, __mais cela n'est pas recommandé__! | ||
- | 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. | + | <note>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.</note> |
+ | ===== Gestion avancée des C-states ===== | ||
+ | Il arrive que seul le Nième C-state pose problème. Dans ce cas, au lieu de se limiter aux N-1 C-states précédents, on peut chercher à désactiver logiciellement le C-state qui pose problème. Pour cela, on utilise la commande | ||
+ | <code bash>sudo cpupower idle-set -d N</code> | ||
+ | où N est à remplacer par le C-state qui pose problème. | ||
+ | On peut aussi chercher à empêcher logiciellement d'utiliser un C-state sur un coeur en particulier avec le paramètre -c . | ||
===== Voir aussi ===== | ===== Voir aussi ===== |