Em alguns sistemas, o governador 'ondemand' infelizmente está quebrado.
Este é o caso de "CPU Intel (R) Core (TM) 2 Quad Q9300 @ 2.50GHz" e kernel 2.6.32-42.
O kernel acha que pode definir a freqüência individualmente para cada CPU, enquanto o hardware na verdade só permite configurar a freqüência em grupos de várias CPUs (por exemplo, CPU 0 e 1 juntos, e CPU 2 e 3 juntos).
Você pode descobrir que o kernel não está ciente disso olhando os arquivos / sys / devices / system / cpu / cpu * / cpufreq / affected_cpus que contêm "0", "1", "2", "3" em vez de "0 1", "0 1", "2 3", "2 3".
O efeito visível dessa falta de correspondência é um processo single-thread que começa a correr a toda velocidade em uma CPU (o governador 'ondemand' reage rapidamente) e depois de aproximadamente 20 segundos (depende dos detalhes da configuração), perde alguns sua velocidade.
A razão é que o SO, com o governador 'ondemand', reaplica periodicamente baixas freqüências nas CPUs ociosas, sem esperar que isso também mude implicitamente a frequência de nossa CPU ocupada. Não é sequer visível quando você olha para / sys / devices / system / cpu / cpu * / cpufreq / * cur_freq ou / proc / cpuinfo, o sistema operacional não está ciente disso!
Portanto, nesses sistemas, a solução é voltar ao regulador simples de 'desempenho'.
PS: No meu caso, rodar as CPUs constantemente em suas freqüências completas não alterou nada em relação ao ruído do ventilador. Eu suponho que quando uma CPU está inativa, uma freqüência menor ou maior não terá muito impacto no uso de energia.