EEIJ

Païou : Mandriva Linux depuis 2002. Aujourd'hui, c'est Mageia Linux


Sommaire


Conforme à XHTML 1.0 Strict Conforme à CSS!

On se lasse de tout, sauf de comprendre.
Attribué à Virgile.

Gérer la fréquence du processeur

Historique

04 février 2014 : Reprise et actualisation de la page de l'ancien site de Païou.

Difficulté

Pour : tout visiteur.

 Introduction

Les micro-processeurs récents offrent la possibilité d'ajuster leur fréquence et leur tension Vcore dynamiquement. Ceci permet de :

Cette technologie est connue sous le nom de SpeedStep pour les processeurs Intel, PowerNow! pour les processeurs AMD 32 bits (Athlon et Athlon XP) et Cool'n'Quiet pour les processeurs AMD 64 bits (Athlon 64, Opteron, etc...).

Haut

 Comment modifier la fréquence du processeur

Lorsque le processeur et le système d'exploitation le permettent, il y a plusieurs façon d'envisager la gestion de la fréquence du processeur :

Ce sont les gouverneurs qui régissent le mode de fonctionnement. Ci-dessous, leur liste, avec les caractéristiques de chacun.

Haut

 Les gouverneurs ou modes de fonctionnement du processeur

Les modes ou "CPUFreq Governor" permettent de choisir le mode de fonctionnement du processeur.

La commande cpupower frequency-info permet de connaître les fréquences limites, les régulateurs (gouverneurs) disponibles et la fréquence actuelle.

Haut

 La procédure pour activer la gestion de la fréquence

Cette activation dépend de plusieurs paramètres.

 Le processeur est-il modulable ?

Le processeur doit accepter les changements de fréquence. C'est le cas des versions 'Mobile', c'est-à-dire des versions pour les portables, mais également de la plupart des processeurs récents.

Quel est votre processeur ?

Le type exact peut être trouvé dans le Centre de contrôle Mageia, sous Matériel / Explorer et configurer le matériel.
Vous pouvez également utiliser la commande $ grep name /proc/cpuinfo dans un terminal.

Est-il compatible ?

Tous les processeurs ne permettent pas de changer leur fréquence de travail.
Le lien ci-dessous donne une liste non exhaustive de processeurs :
Dans une nouvelle fenêtre (onglet) : une liste de processeurs compatibles
Cliquez

Haut

 Le BIOS est-il configuré pour permettre la gestion de la fréquence ?

Sur certains BIOS, il faut activer une fonction qui peut s'appeler SpeedStep, EIST (Enhanced Intel SpeedStep Technology) ou Cool'n'Quiet

Haut

 Le noyau linux permet-il la gestion de la fréquence ?

Le noyau doit avoir été compilé ou patché avec :

Les noyaux standards de Mageia sont donc compilés pour permettre la gestion de la fréquence du processeur et le gouverneur performance est sélectionné par défaut.

Pour les curieux, survolez : un extrait du fichier /boot/config relatif au noyau kernel3.10.24-server-2.mga3

#
# CPU Frequency scaling
#
CONFIG_CPU_FREQ=y
CONFIG_CPU_FREQ_TABLE=y
CONFIG_CPU_FREQ_GOV_COMMON=y
CONFIG_CPU_FREQ_STAT=m
CONFIG_CPU_FREQ_STAT_DETAILS=y
CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE=y
# CONFIG_CPU_FREQ_DEFAULT_GOV_POWERSAVE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_USERSPACE is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
# CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
CONFIG_CPU_FREQ_GOV_PERFORMANCE=y
CONFIG_CPU_FREQ_GOV_POWERSAVE=m
CONFIG_CPU_FREQ_GOV_USERSPACE=y
CONFIG_CPU_FREQ_GOV_ONDEMAND=m
CONFIG_CPU_FREQ_GOV_CONSERVATIVE=m

#
# x86 CPU frequency scaling drivers
#
# CONFIG_X86_INTEL_PSTATE is not set
CONFIG_X86_PCC_CPUFREQ=m
CONFIG_X86_ACPI_CPUFREQ=m
CONFIG_X86_ACPI_CPUFREQ_CPB=y
CONFIG_X86_POWERNOW_K8=m
CONFIG_X86_AMD_FREQ_SENSITIVITY=m
CONFIG_X86_SPEEDSTEP_CENTRINO=m

On voit que les gouverneurs performance et userspace sont compilés dans le noyau, que performance est le gouverneur par défaut et que powersave, ondemand et conservative sont compilés dans des modules.
On y voit également que le pilote ACPI_CPUFREQ_CPB est compilé avec le noyau, alors que d'autres sont compilés en modules

Haut

 Charger le pilote adéquat

Normalement le pilote correspondant à votre processeur est automatiquement installé, ainsi qu'un gouverneur :

Pour les curieux, survolez : quelques commandes à exécuter en root
  1. Si vous voulez connaître les caractéristiques des différents pilotes, une façon assez rapide pour les obtenir consiste à utiliser la commande ci-dessous, en root
    for MODULE in $(ls /lib/modules/$(uname -r)/kernel/drivers/cpufreq/); do echo \*$MODULE\ $(modinfo ${MODULE%.ko.xz} | grep description:); done
    Dans la plupart des cas, la description est assez explicite et donne le type du processeur concerné.
  2. Pour connaître les pilotes et gouverneurs chargés, en root # lsmod | grep '\(cpu\|power\|speed\)'
  3. Pour charger manuellement un pilote, en root : # modprobe -v nom_du_pilote
  4. Pour charger automatiquement, au démarrage, en root : # echo nom_du_pilote >> /etc/modprobe.preload
Haut

 Les outils

 Lire l'état (fréquence et gouverneur)

Avec votre interface graphique (KDE Gnome, Xfce ...) il existe un outil permettant d'afficher l'état du processeur.
Avec Xfce, il faut installer le paquetage xfce4-cpufreq-plugin, puis activer l'affichage dans le panneau (clic droit + ajouter des éléments).
Il doit exister un outil similaire pour KDE et pour Gnome.

Un autre outil, cpupower frequency-info, est intéressant. Il est utilisé en mode console et donne les informations sur la fréquence actuelle, les fréquences possibles (pour le processeur installé), le pilote, le gouverneur actuel et les gouverneurs possibles.
Il faut installer le paquetage cpupower (En général, il est installé par défaut)

Il est également intéressant de voir le contenu de certains fichiers du répertoire /sys/devices/system/cpu/cpu0/cpufreq

Haut

 Modifier le gouverneur

Le paquetage cpupower procure également la commande cpupower frequency-set qui permet de modifier le gouverneur, la fréquence de travail ... Elle est utilisée en root.
cpupower -c 0 frequency-set -g ondemand ou cpupower -c 0 frequency-set -g conservative

Il est également possible de déléguer la détermination de la fréquence à un programme tel que powernowdavec cpupower -c 0 frequency-set -g userspace.
Le paquetage powernowd doit bien sûr être installé dans ce cas.

C'est le mode que je préconise.

Haut