A documentação do Linux da variável sysfs scaling_max_freq
reports
Maximum frequency the CPUs belonging to this policy are allowed to be running at (in kHz).
This attribute is read-write and writing a string representing an integer to it will cause a new limit to be set (it must not be lower than the value of the
scaling_min_freq
attribute).
Minha percepção do acima foi que eu posso usar o seguinte comando
$ echo 2133000 >/sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq
para indicar ao cpufreq governer que eu desejo que o cpu0 seja executado no máximo 2133Mhz. Depois de ter definido o valor, posso verificar se está sendo definido via
$ cat /sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq
que de fato rende 2133000
Agora vem a parte estranha, que me leva a colocar essa questão aqui:
Durante a execução de uma tarefa intensiva de CPU (por exemplo, uma compilação de kernel), eu verifico o valor em /sys/devices/system/cpu/cpufreq/policy0/scaling_max_freq
e ele reporta 1199000, uma frequência muito menor.
Agora estou intrigado: quem alterou o valor? o governador cpufreq?
atualizar / info para elogiar
dmesg
não mostra nenhuma mensagem de limitação make -j4
foi usado para usar 4 quatro pipelines da CPU Intel ( model name : Intel(R) Core(TM) i5 CPU M 560 @ 2.67GHz
) uname -a
mostra Linux work 4.18.3-arch1-1-ARCH #1 SMP PREEMPT Sat Aug 18 09:22:54 UTC 2018 x86_64 GNU/Linux
daqui, meu kernel de estoque arch linux schedutil
/sys/devices/system/cpu/cpufreq/policy0/scaling_driver
mostra acpi-cpufreq
/sys/devices/system/cpu/cpu0/cpufreq/bios_limit
informa 2666000 que, como seria de esperar, a frequência máxima da cpu. (Devo verificar este valor durante o estresse da CPU, ou em ocioso ??)
O laptop é um modelo Lenovo Thinkpad X201t (tablet), com o adaptador de rede sendo o original fornecido ao modelo na compra. No entanto, mudei temporariamente o adaptador de alimentação com outro e reportarei os resultados.
Para ser absolutamente claro. O valor de scaling_max_freq
é restaurado após o término da tarefa de carregamento de alta cpu. Em estado "quase inativo", novamente me informa o 2133000
originalmente definido.
Tags sysfs linux cpu-frequency