Problemas estranhos de escalonamento cpufreq: independentemente do governador, max cpufreq cai incrementalmente no rastreio

2

Estou executando o Ubuntu Mate 15.10 64bit (kernel 4.2.0) em um Lenovo y5070 com uma CPU i7-4710HQ. Eu notei recentemente (possivelmente depois de um recente dist-upgrade) que certos programas eram realmente lentos. Depois de um pouco de investigação, parece que o intel_pstate muda para o regulador "powersave" por padrão, o que reduz corretamente o meu cpufreq para cerca de 600 MHz quando eu não estou fazendo nada intensivo. No entanto, não aumenta mais o cpufreq quando faço algo intensivo.

Para corrigir isso, defino GOVERNOR="performance" em:

/etc/init.d/cpufrequtils. 

Após a inicialização, o cpufreq fica corretamente em torno de 2.5 GHz e o governor está corretamente configurado para "performance". No entanto, após um minuto, o governador é automaticamente alterado de volta para "powersave" e o cpufreq cai novamente. Se eu, então, definir manualmente o regulador com cpufreq-set, ele retornará para 2,5 GHz.

A segunda questão que notei foi que toda vez que eu suspendo e acordo meu laptop, o cpufreq máximo cai em uma quantidade incremental (esses incrementos são os mesmos a cada vez):

antes de suspender:

current policy: frequency should be within 800 MHz and 3.50 GHz.
              The governor "performance" may decide which speed to use
              within this range.
current CPU frequency is 2.20 GHz.

após o primeiro despertar:

current policy: frequency should be within 800 MHz and 2.10 GHz.
              The governor "performance" may decide which speed to use
              within this range.
current CPU frequency is 1.12 GHz.

após o segundo despertar:

current policy: frequency should be within 800 MHz and 1.40 GHz.
              The governor "performance" may decide which speed to use
              within this range.
current CPU frequency is 1.30 GHz.

etc.

Nota: o governor ainda está configurado para "desempenho".

Tentativa de definir o cpufreq max com cpufreq-set:

for ((i=0;i<$(nproc);i++)); do sudo cpufreq-set -c $i -u 3.50GHz; done

não tem efeito.

Por fim, também tentei desativar o intel_pstate no grub e definir a configuração do acpi como "performance"; isso sofre do mesmo problema de suspensão / ativação.

Qualquer ideia seria apreciada!

Editar 1: Eu tentei isso sugere que o problema pode ser que a modulação do relógio seja ativada automaticamente no wake, que entra em conflito com o intel_pstate. De fato, parece que a modulação do relógio está ativada, mas desativando-a com:

sudo wrmsr -a 0x19a 0x0

não altera visivelmente as frequências, e ainda não consigo alterar o valor max cpufreq.

Editar 2: @ DougSmythies no meu pc esses arquivos estão em outro lugar, estas são as respectivas impressões (eu excluí as frequências para os outros 7 núcleos, eles são idênticos). Observe também que estou usando atualmente o driver acpi:

cat /sys/devices/system/cpu/cpu*/cpufreq/cpu_min_freq
800000 

cat /sys/devices/system/cpu/cpu*/cpufreq/cpu_max_freq
2501000

cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_max_freq                                                 
2501000 

cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_min_freq                                                 
800000

Não consigo encontrar o arquivo intel_pstate em nenhum lugar em / sys / devices.

Editar 3: @DougSmythies Eu reiniciei com o driver intel_pstate e suspendi e levantei a máquina. Os núcleos estão sendo executados por volta de 2000 agora no modo de desempenho. A frequência máxima é 2,1 GHz, de acordo com cpufreq-info; foi de 3,5 GHz antes de suspender. Aqui está a saída dos arquivos que você solicitou (apenas para cpu0, eles são todos iguais):

$cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_max_freq 
3500000
$cat /sys/devices/system/cpu/cpu0/cpufreq/cpuinfo_min_freq                                                 
800000
$cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq 
2100000
$cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq 
800000

$grep . /sys/devices/system/cpu/intel_pstate/*                                                                                                                                                                                                      
/sys/devices/system/cpu/intel_pstate/max_perf_pct:60
/sys/devices/system/cpu/intel_pstate/min_perf_pct:22
/sys/devices/system/cpu/intel_pstate/no_turbo:0
/sys/devices/system/cpu/intel_pstate/num_pstates:28
/sys/devices/system/cpu/intel_pstate/turbo_pct:36
    
por jeicher 28.02.2016 / 15:50

1 resposta

0

Você é possivelmente afetado por esse bug:

link

O patch só caiu no kernel da linha principal v 4.6. No devido tempo, talvez ele seja enviado para 16.04LTS ou, em fevereiro de 2017, ele deverá chegar na próxima pilha de ativação de LTS:

link

    
por JPvRiel 10.11.2016 / 11:46