Gérer la fréquence du processeur

Mises à jour

20-22 oct 09 : essai de clarification de certains paragraphes, ajout de la procédure d'activation et des outils.

Introduction

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

  • réduire la consommation électrique,
  • augmenter le temps de batterie sur les portables,
  • diminuer la chaleur dégagée par le processeur,
  • diminuer les bruits des ventilateurs,
  • Prolonger la durée de vie du matériel.

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 :

  • lui attribuer une fréquence fixe, définie une fois pour toutes. Cela n'a pas un grand intérêt, sauf pour diminuer la consommation au détriment des performances.
  • pouvoir modifier manuellement la fréquence, à l'aide d'un outil en ligne de commande ou un putil graphique. C'est déjà plus intéressant, notamment lorsqu'un portable fonctionne sur batterie.
  • la vitesse s'ajuste automatiquement, en fonction de la charge du processeur. L'utilisateur n'intervient pas.
  • l'utilisateur peut très facilement choisir le mode de fonctionnement selon les circonstances

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.

  • performance
    Le mode «performance» fixe la fréquence du processeur à la valeur la plus élevée définie par scaling_min_freq et scaling_max_freq.
  • powersave
    Le mode «powersave» fixe la fréquence du processeur à la valeur la plus faible définie par scaling_min_freq et scaling_max_freq.
  • userspace
    Le mode «userspace» permet à l'utilisateur (ou à tout programme tournant avec avec l'UID "root") de définir la fréquence du processeur à une valeur spécifique, extraite du fichier /sys/devices/system/cpu/cpu0/cpufreq/scaling_setspeed.
  • ondemand
    Le mode «ondemand» règle, de façon dynamique, la fréquence en fonction de la charge du processeur. Pour ce faire, le processeur doit pouvoir changer la fréquence très rapidement. Il choisit une fréquence CPU maximale lorsque le système est chargé et la redescend progressivement lorsque le système est inactif. Il peut être paramétré grâce aux options contenues dans : /sys/devices/system/cpu/cpu0/cpufreq/ondemand/. Requiert tout de même des outils utilisateurs (programmes et scripts) si l'on souhaite utiliser le changement de gouverneur ou des fonctionnalités similaires.
  • conservative
    Le mode «conservative» règle, de façon dynamique et un peu comme ondemand, la fréquence en fonction de la charge du processeur. À la différence du gouverneur ondemand, le conservative ne saute pas directement à la fréquence maximale lorsque le système est en pleine charge, mais augmente celle-ci progressivement. On peut également le paramétrer grâce aux fichiers situés dans /sys/devices/system/cpu/cpu0/cpufreq/ondemand/. Il requiert tout de même des outils (programmes, scripts) si vous désirez changer automatiquement de gouverneur.
Haut

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

Cette activation se fait en plusieurs étapes.

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 Mandriva, 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.
Dans une nouvelle fenêtre (onglet) : la liste des 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 Mandriva sont donc compilés pour permettre la gestion de la fréquence du processeur et le gouverneur performance est sélectionné par défaut.

Haut

Charger le pilote adéquat

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

  • plusieurs pilotes et gouverneurs sont compilés directement avec le noyau (powernow_k7_acpi, powernow_k8_acpi et speedstep_centrino_table)
  • d'autres sont automatiquement chargés au démarrage. Pour les connaître : cat /etc/modprobe.preload.d/cpufreq

Remarques :

  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/arch/x86/kernel/cpu/cpufreq/); do echo \*$MODULE\ $(modinfo ${MODULE%.ko.gz} | 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, cpufreq-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 cpufrequtils

Haut

Modifier le gouverneur

Le paquetage cpufrequtils procure également la commande cpufreq-set qui permet de modifier le gouverneur, la fréquence de travail ...

Il existe également des demons qui permettent de gérer la fréquence en fonction de la charge (powernowd par exemple), mais cela rajoute une couche alors que le gouverneur ondemand remplit la même fonction. Je ne détaillerai donc pas plus.

Haut
 

Les pages relatives aux tutoriels :

Installation : avant, pendant, après Installation, pas à pas, de 2008.0 Installation, depuis internet Installation en réseau
Comment MDV sélectionne les paquetages Créer sa liste de paquetages
Configuration du système Configuration d'un utilisateur KDE Serveur de fichiers avec ProFTPD Partage de fichiers avec NFS
Réveiller un ordinateur à distance Commander un ordinateur à distance avec ssh
Le son et la gestion du son La video et la gestion des images Découvrir la puissance de Gstreamer
Faire des sauvegardes générales Nettoyer le répertoire /home Changer de client de messagerie Synchroniser fichiers et répertoires
Créer sa distribution personnelle Autopsie d'une distribution Mandriva

Les différentes rubriques :

Accueil Ordinateur Mandriva Tutoriels Initiation à la programmation Maison bioclimatique
On se lasse de tout, sauf de comprendre.
Attribué à Virgile.