Isto ainda não está perto de ser uma resposta definitiva. Em vez disso, é um conjunto de sugestões muito longo para caber nos comentários.
Eu tenho medo que você possa interpretar um pouco os significados dos parâmetros sysfs cpufreq. Por exemplo, no meu laptop Core Duo , os parâmetros related_cpu
para ambos os núcleos leem 0 1
- o que, de acordo com sua interpretação, significaria que os núcleos não podem alternar frequências de forma independente. Mas esse não é o caso - eu posso definir cada frequência à vontade. Por outro lado, o parâmetro affected_cpus
para cada núcleo lista apenas o respectivo número de CPU.
Você pode querer dar uma olhada na documentação do kernel do cpu-freq para entender melhor os parâmetros, como affected_cpus
, related_cpus
, scaling_*
e cpuinfo_*
. A documentação é normalmente distribuída com pacotes de origem do kernel. Especificamente, recomendo ler <kernel-sources-dir>/Documentation/cpu-freq/user-guide.txt
, em que <kernel-sources-dir>
normalmente representa /usr/src/linux
ou /usr/src/linux-<kernel-version>
. (No entanto, quando eu mesmo examino a documentação agora, confesso que não percebo algumas nuances relacionadas à escala de frequência. Para entender completamente essas informações, provavelmente é necessário obter um sólido entendimento das arquiteturas de CPU primeiro.)
Voltar para sua pergunta. E mais um caso de teste da minha parte: quando eu mudo o valor de scaling_max_freq
(com userspace
ou performance
governor sendo usado), o relógio do núcleo muda automaticamente para esse novo máximo. O comportamento diferente que você está observando pode ser qualquer um:
- específico para implementação de hardware de mecanismos de escalonamento de frequência em sua CPU,
- devido a diferenças entre o módulo
cpufreq
padrão ephc-intel
que estou usando, - comportamento normal (chame-se de um bug ou um recurso se você quiser) de
cpufreq
module, que mudou em algum momento desde2.6.35
(minha versão atual do kernel é3.6.2
), - resultado de um erro na implementação de
cpufreq
para sua CPU (ou toda a família), - específico para a implementação do
performance
do controlador da CPU a partir de2.6.35
.
Algumas das coisas que você pode fazer para levar sua investigação adiante:
- leia o
user-guide.txt
e mexa mais com outros parâmetroscpufreq
, - repita os testes enquanto executa um kernel mais novo - a maneira mais fácil é inicializar um liveCD / DVD / USB.
Se você continuar a experimentar um comportamento inesperado e ganhar mais razões para acreditar que é devido a um bug (definitivamente deve verificar com a última versão do kernel secundário), vá em frente e relate isso em kernel.org bugzilla .