Como escalar o driver intel_pstate no Ubuntu 15.04?

2

Quase tentei toda a solução para dimensionar a frequência da cpu, mas não obtive sucesso. Eu tenho o Intel Core i5-3210m 2.5Ghz-3.1Ghz. Eu quero permanentemente configurá-lo para 1.6Ghz sem turbo para melhorar os tempos de bateria. Por favor, diga de acordo com o driver intel_pstate.

    
por AhmedBilal 27.08.2015 / 10:51

1 resposta

4

Para limitar a frequência da CPU superior com o driver intel_pstate para 52%, faça:

echo "52" | sudo tee /sys/devices/system/cpu/intel_pstate/max_perf_pct

Nota 1: No cálculo de 52%, assumi que você tem turbo habilitado, para um máximo de 31 estados. Portanto, 1,6 / 3,1 = 52%. Se você desativou o turbo, o número seria 64%. Não há necessidade de desativar especificamente o turbo, pois com este limite, ele nunca entrará na faixa de turbo de qualquer maneira.

Nota 2: Dependendo das suas aplicações e processador, limitar a frequência da CPU pode não resultar na maior duração da bateria. Em alguns casos, concluir a tarefa mais rapidamente, por meio de uma frequência de CPU mais alta e, portanto, permitir que algumas CPUs entrem em suspensão profunda (o estado C mais alto) mais cedo e por mais tempo, pode resultar em menos consumo de energia.

Nota 3: A solução não é permanente e a configuração será perdida na reinicialização. Eu sugiro que você tente por um tempo, informe e então podemos pensar em como torná-lo permanente. Existem outras ferramentas de nível superior para isso, mas nunca as uso. Alguém poderia fornecer outra resposta envolvendo as ferramentas de nível superior.

Um exemplo (processador diferente, números diferentes). CPU 7 está sob 100% de carga:
Antes de definir o limite de frequência superior:

$ grep MHz /proc/cpuinfo
cpu MHz         : 3697.234
cpu MHz         : 3655.796
cpu MHz         : 3699.890
cpu MHz         : 3742.257
cpu MHz         : 3613.562
cpu MHz         : 3670.273
cpu MHz         : 3628.968
cpu MHz         : 3799.898

Agora, limite a frequência superior e verifique:

$ echo "50" | sudo tee /sys/devices/system/cpu/intel_pstate/max_perf_pct
50
$ cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
50
$ grep MHz /proc/cpuinfo
cpu MHz         : 1899.882
cpu MHz         : 1900.015
cpu MHz         : 1899.882
cpu MHz         : 1893.906
cpu MHz         : 1899.351
cpu MHz         : 1900.015
cpu MHz         : 1899.750
cpu MHz         : 1899.882

EDIT: Cuidado com o backporting das mudanças do driver intel_pstate para qualquer que seja o seu kernel padrão. Eu sei que o backporting está sendo feito, mas não conheço os cronogramas de lançamento.

Para que a alteração sempre ocorra durante a inicialização, primeiro crie um script, por exemplo:

$ cat set_cpu_max_perf_pct
#! /bin/bash

echo 52 >/sys/devices/system/cpu/intel_pstate/max_perf_pct
echo -n "intel_pstate maximum performance request is (percent): "
cat /sys/devices/system/cpu/intel_pstate/max_perf_pct

Teste o script, sendo executado como sudo. Em seguida, consulte uma das muitas outras perguntas e respostas que abordam a execução durante a inicialização. Diga, este .

Como alternativa, você pode instalar ferramentas como o TLP que tem essas configurações no arquivo de configuração com parâmetro para bateria ou CA e comutador automático.

    
por Doug Smythies 27.08.2015 / 17:55