Date Tags linux

(Je suis fatigué, et puis le noyau c’est pas mon truc, donc je m’apprête probablement à écrire un tissu d’âneries :þ).

Je suis pas vraiment un amateur des démons qui tournent en arrière-plan (le contraire même d’un windowsien qui les collectionne dans la barre des tâches 1). Surtout lorsque ce démon prend de la mémoire pour assurer une fonction que le noyau peut faire par lui-même : la modification à la volée de la tension et de la fréquence du processeur.

Certes, un démon en espace utilisateur présente quelques avantages par rapport à une procédure du noyau, notamment en termes de tests et de débogage. À l’inverse, on peut arguer que la procédure noyau, étant plus bas niveau, est bien plus avantageuse, puisqu’elle permet de recourir à d’autres procédures spécifiques du noyau et du matériel, et surtout d’avoir des algorithmes plus fins.

Il y a plusieurs gestionnaires de fréquence pour les processeurs, notamment performance (par défaut, processeur à fond), userspace (fréquence contrôlée par une application utilisateur comme powernowd), ou encore ondemand (variation progressive de la fréquence selon l’utilisation). Ainsi, comme on le voit, on peut obtenir les mêmes fonctionnalités sans utiliser powernowd. Le gestionnaire ondemand semble même plus performant que powernowd, car par défaut, powernowd est lancé en mode ‘AGRESSIVE’ (variation en dents de scie), là où le gestionnaire ondemand emploie une courbe plus “lisse”. Je ne connais pas exactement les effets des variations brusques de fréquences sur la durée de vie d’un processeur cela dit…

Enfin, venons-en au fait :

  • supprimons powernowd :

    sudo aptitude purge powernowd
    
  • activons le gestionnaire ‘ondemand’ au démarrage : le plus simple est d’ajouter une ligne par processeur dans le fichier /etc/rc.local (j’ai un Core Duo, chaque core étant vu comme un cpu au niveau du noyau, j’ai mis deux lignes) :

    echo "ondemand" >/sys/devices/system/cpu/cpu0/cpufreq/scaling_governor
    echo "ondemand" >/sys/devices/system/cpu/cpu1/cpufreq/scaling_governor
    # Finissez par un
    exit 0
    # pour être tranquille (s'il n'existe pas déjà)
    

Et voilà ! :)

PS : oui, je suis conscient que ce billet manque de mots de liaison, on passe un peu d’une chose à l’autre sans transition, mais j’ai activé la balise XML bien connue : <rien à voir />.

  1. Ouais, un billet sans troll, c’est pas drôle. ;)