Sur certains systèmes, le gouverneur «à la demande» est malheureusement cassé.
C'est le cas pour "Intel (R) Core (TM) 2 Quad CPU Q9300 @ 2.50GHz" et le noyau 2.6.32-42.
Le noyau pense qu'il peut définir la fréquence individuellement pour chaque CPU alors que le matériel ne permet en fait de régler la fréquence que sur des groupes de plusieurs CPU (par exemple CPU 0 et 1 ensemble, et CPU 2 et 3 ensemble).
Vous pouvez découvrir que le noyau n'est pas au courant de cela en consultant les fichiers / sys / devices / system / cpu / cpu * / cpufreq / affecte_cpus qui contiennent "0", "1", "2", "3" au lieu de "0 1", "0 1", "2 3", "2 3".
L'effet visible de cette correspondance erronée est un processus monothread qui commence à fonctionner à pleine vitesse sur un processeur (le gouverneur `` ondemand '' réagit rapidement), puis, après environ 20 secondes (en fonction des paramètres définis), perd une partie de sa vitesse.
La raison en est que le système d'exploitation, avec le gouverneur `` à la demande '', réapplique périodiquement de faibles fréquences sur les processeurs inactifs, ne s'attendant pas à ce qu'il change également implicitement la fréquence de notre processeur occupé. Ce n'est même pas visible lorsque vous regardez / sys / devices / system / cpu / cpu * / cpufreq / * cur_freq ou / proc / cpuinfo, le système d'exploitation n'est tout simplement pas au courant!
Ainsi, sur ces systèmes, la solution est de revenir au simple gouverneur «performance».
PS: Dans mon cas, faire tourner les CPU constamment à leur pleine fréquence n'a rien changé au niveau du bruit des ventilateurs. Je suppose que lorsqu'un processeur tourne au ralenti, une fréquence inférieure ou supérieure n'aura pas beaucoup d'impact sur sa consommation d'énergie.