Como configurar os reguladores para que a Intel funcione como um bom sob pedido antigo?

5

Eu costumava trabalhar no meu laptop em ondemand governor, que estava alternando a frequência da CPU dependendo do uso da CPU . Funcionou muito bem durante anos e teve três vantagens muito importantes:

  • baixas temperaturas de hardware
  • fã silencioso
  • alto desempenho quando necessário

Agora atualizei meu laptop (para o Lenovo B5400, Intel Pentium 3550M ) e o sistema ( Ubuntu 14.10 ) e descobri que:

  • somente performance e powersave governors estão disponíveis; ondemand não está mais disponível e é compatível
  • alguma coisa foi alterada na configuração de arquivos, porque o atual controlador e as velocidades mín / máx são restauradas para os padrões sempre que eu inicializo

Em consequência, meu sistema:

  • ainda transforma o regulador de volta em performance , o que é errado, acredito
  • qualquer que seja o regulador, o cpufreq-info informa que "frequência deve estar dentro de 2.30 MHz e 2.30 GHz" embora as frequências disponíveis iniciem a partir de 800MHz

Eu tentei editar /etc/init.d/cpufrequtils definindo a seguinte configuração:

  

ENABLE="true"

     

GOVERNOR="powersave"

     

MAX_SPEED="2300000"

     

MIN_SPEED="800000"

Eu também tentei editar o arquivo scaling_min_freq em /sys/devices/system/cpu/cpu0/cpufreq e defini-lo para 800000.

E, adivinhem, depois de reiniciar o sistema estou novamente no modo performance com frequência "escalada entre" 2.30GHz e 2.30GHz.

Você poderia, por favor, me explicar:

a) onde exatamente no Ubuntu 14.10 estão as configurações principais de freqüências mínimas / máximas de CPU?

b) como definir frequências e governadores para obter o mesmo resultado que o bom ondemand ? (Eu gostaria de trabalhar na menor frequência possível e subir apenas com carga pesada)

c) e como evitar redefinir o que eu defini, é claro.

Eu ficaria grato por explicações.

    
por kurp 25.10.2014 / 21:54

2 respostas

2

Para processadores compatíveis, por padrão o Ubuntu agora usa o governador de freqüência da CPU intel_pstate, enquanto usava o governador de freqüências da CPU acpi_cpufreq.

A unidade intel_pstate não tem o modo ondemand , mas seu modo powersave deve ser o equivalente do modo acpi_cpufreq ondemand . Seu sistema deve usar como padrão o modo powersave cerca de 1 minuto após a inicialização e por meio do script /etc/init.d/ondemand . No passado recente, esse script não estava lidando corretamente com o caso intel_pstate, mas deveria ter sido corrigido para todos os casos de uso até agora. Referência .

Para responder às suas perguntas reais:

A.) As frequências mínimas máximas e máximas são armazenadas como números percentuais.
cat /sys/devices/system/cpu/intel_pstate/min_perf_pct
cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
A interpretação desses números é uma função do sinalizador turbo habilitado ou desabilitado e, em minha opinião, há uma inconsistência nas definições.
cat /sys/devices/system/cpu/intel_pstate/no_turbo

Exemplo do meu i7-2600K: min freq 1.6GHz; max não turbo 3.4GHz; turbo max 3.8GHz.
Portanto, como percentagens:
Turbo off: max = 100%, min = 47,1%
Turbo on: max = 100%, min = 42,1%

$ cat /sys/devices/system/cpu/intel_pstate/no_turbo
0
$ cat /sys/devices/system/cpu/intel_pstate/min_perf_pct
42
$ cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
100

e

$ cat /sys/devices/system/cpu/intel_pstate/no_turbo
1
$ cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
100
$ cat /sys/devices/system/cpu/intel_pstate/min_perf_pct
42


B.) O modo intel-pstate powersave deve ser o equivalente do modo acpi-cpufreq ondemand .

C.) Há algo errado, resultando em sua dor. Houve outros relatórios semelhantes ao seu. Eu, eu não sei o problema de raiz, mas também tem havido relatos de incompatibilidades com cpufrequtils. Não sei se são verdadeiras ou não, pois não uso essas coisas. Eu só uso o nível mais primitivo de controles com o driver intel-pstate.

    
por Doug Smythies 26.04.2015 / 18:41
1

Configurei-o em .bashrc como um alias (e como root ), porque tive problemas semelhantes.
Os aliases são assim:

alias performance="echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"  
alias powersave="echo powersave > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"  
alias ondemand="echo ondemand > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor"

Você pode gravar powersave para habilitar a opção de economia de energia no console BASH . Quando eu quiser usar um regulador de escala específico, eu coloco em /etc/rc.local :

#!/bin/sh -e  
# rc.local  
# This script is executed at the end of each multiuser runlevel.  
# Make sure that the script will "exit 0" on success or any other   
# value on error.  
# In order to enable or disable this script just change the execution  
# bits.  
#  
# By default this script does nothing.  
for i in 'ls -d /sys/devices/system/cpu/cpu*|grep -v cpufreq|grep -v cpuidle'; do echo ondemand > $i/cpufreq/scaling_governor; done
exit 0

Você provavelmente tem mais de um processador, então edite-o de acordo. Estou com preguiça de escrever um pequeno roteiro, mas farei isso se você me pedir para fazer isso :)

EDIT: Adicionei o script a /etc/rc.local

    
por Pavol Polacko 25.04.2015 / 13:31