web-dev-qa-db-fra.com

Comment paramétrer les gouverneurs pour qu'Intel fonctionne de la même manière?

J'avais l'habitude de travailler sur mon ordinateur portable sur ondemand gouverneur, qui était fréquence de commutation du processeur en fonction de l'utilisation du processeur. Cela a fonctionné assez bien pendant des années et avait trois avantages très importants:

  • températures matérielles basses
  • ventilateur silencieux
  • haute performance en cas de besoin

Maintenant, j'ai mis à niveau mon ordinateur portable (Lenovo B5400, Intel Pentium 3550M) et mon système (buntu 14.1), et j'ai constaté que:

  • seuls les régulateurs performance et powersave sont disponibles; ondemand n'est plus disponible et pris en charge
  • quelque chose a été changé dans les fichiers de paramétrage, car les vitesses actuelles du régulateur et du minimum/maximum sont restaurées aux valeurs par défaut à chaque démarrage

En conséquence mon système:

  • retourne toujours gouverneur à performance, ce qui est faux, je crois
  • quel que soit le gouverneur, cpufreq-info me dit que "la fréquence devrait être comprise entre 2,30 MHz et 2,30 GHz" bien que les fréquences disponibles soient à partir de 800 MHz

J'ai essayé de modifier /etc/init.d/cpufrequtils en définissant le paramètre suivant:

ENABLE = "true"

GOVERNOR = "powersave"

MAX_SPEED = "2300000"

MIN_SPEED = "800000"

J'ai également essayé de modifier le fichier scaling_min_freq dans /sys/devices/system/cpu/cpu0/cpufreq et de le définir sur 800000.

Et, devinez quoi, après avoir redémarré le système, je suis de nouveau en mode performance avec une fréquence "échelonnée" entre 2,30 GHz et 2,30 GHz.


Pourriez-vous, s'il vous plaît, m'expliquer:

a) Où se trouvent exactement dans Ubuntu 14.10 les paramètres principaux des fréquences de processeur minimales/maximales?

b) comment définir les fréquences et les régulateurs pour obtenir le même résultat que l'ancien bien ondemand? (Je voudrais travailler sur la fréquence la plus basse possible et ne monter que sur des charges lourdes)

c) et comment éviter de réinitialiser ce que j'ai défini, bien sûr.

Je serais reconnaissant pour des explications.

5
kurp

Pour les processeurs compatibles, Ubuntu utilise désormais par défaut le gouverneur de fréquence de processeur intel_pstate, alors qu’il utilisait auparavant le gouverneur de fréquence de processeur acpi_cpufreq.

Le lecteur intel_pstate n'a pas le mode ondemand, mais son mode powersave doit être l'équivalent du mode acpi_cpufreq ondemand. Votre système doit utiliser le mode powersave par défaut environ 1 minute après le démarrage, via le script /etc/init.d/ondemand. Dans un passé récent, ce script ne traitait pas correctement le cas intel_pstate, mais il aurait déjà dû être corrigé pour tous les cas d'utilisation. référence .

Pour répondre à vos questions réelles:

A.) Les fréquences minimales et maximales du maître sont stockées sous forme de pourcentages.
cat /sys/devices/system/cpu/intel_pstate/min_perf_pct
cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
L’interprétation de ces chiffres dépend du drapeau activé ou désactivé turbo et, à mon avis, il existe une incohérence dans les définitions.
cat /sys/devices/system/cpu/intel_pstate/no_turbo

Exemple de mon i7-2600K: fréquence minimale 1,6 GHz; maxi non turbo de 3,4 GHz; max turbo 3,8 GHz.
Donc en pourcentage:
Turbo désactivé: max = 100%, min = 47,1%
Turbo activé: max = 100%, min = 42,1%

$ cat /sys/devices/system/cpu/intel_pstate/no_turbo
0
$ cat /sys/devices/system/cpu/intel_pstate/min_perf_pct
42
$ cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
100

et

$ cat /sys/devices/system/cpu/intel_pstate/no_turbo
1
$ cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
100
$ cat /sys/devices/system/cpu/intel_pstate/min_perf_pct
42


B.) Le mode intel-pstate powersave devrait être l’équivalent du mode acpi-cpufreq ondemand.

C.) Il y a quelque chose qui ne va pas, ce qui entraîne votre chagrin. Il y a eu d'autres rapports semblables aux vôtres. Moi-même, je ne connais pas le problème fondamental, mais des incompatibilités avec cpufrequtils ont également été rapportées. Je ne sais pas si elles sont vraies ou non, car je n'utilise aucune de ces choses. J'utilise uniquement le niveau de contrôle le plus primitif avec le pilote intel-pstate.

3
Doug Smythies

Je l'ai défini dans .bashrc comme alias (et comme root), car j'ai rencontré des problèmes similaires.
Les alias ressemblent à ceci:

alias performance="echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"  
alias powersave="echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"  
alias ondemand="echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"

Vous pouvez ensuite écrire powersave pour activer l'option d'économie d'énergie sur la console BASH. Quand je veux utiliser un régulateur de mise à l'échelle spécifique, je le mets dans /etc/rc.local:

#!/bin/sh -e  
# rc.local  
# This script is executed at the end of each multiuser runlevel.  
# Make sure that the script will "exit 0" on success or any other   
# value on error.  
# In order to enable or disable this script just change the execution  
# bits.  
#  
# By default this script does nothing.  
for i in `ls -d /sys/devices/system/cpu/cpu*|grep -v cpufreq|grep -v cpuidle`; do echo ondemand > $i/cpufreq/scaling_governor; done
exit 0

Vous avez probablement plusieurs processeurs, modifiez-le en conséquence. Je suis trop paresseux pour écrire un court script, mais je le ferai si vous me le demandez :)

EDIT: j'ai ajouté le script à /etc/rc.local

1
Pavol Polacko