A escala de frequência da CPU não funciona como pretendido no Ubuntu Ubuntu 16.04

1

A escala de frequência da CPU no meu laptop (CPU Intel (R) Core ™ i7-4810MQ @ 2.80GHz) não está funcionando como esperado. Após a instalação inicial do Ubuntu 16.04, não fiz alterações no gerenciamento de energia ou no escalonamento de frequência da cpu. Normalmente estou acostumado com o governador ondemand. No entanto, parece que este governador foi substituído por algum pstate thingy e o governador de poupança de energia em novos kernels.

Mesmo sem carregar, as freqüências da cpu pairam em torno da faixa 2.x, fazendo com que os ventiladores fiquem barulhentos e o dispositivo se aqueça:

$ cat /proc/cpuinfo |grep -i mh
cpu MHz     : 3435.468
cpu MHz     : 2245.468
cpu MHz     : 2800.218
cpu MHz     : 2338.765
cpu MHz     : 2800.546
cpu MHz     : 2801.203
cpu MHz     : 2800.875
cpu MHz     : 2000.140
$ uptime
 14:57:49 up  5:15,  1 user,  load average: 0,01, 0,08, 0,16
$ cpufreq-info 
cpufrequtils 008: cpufreq-info (C) Dominik Brodowski 2004-2009
Report errors and bugs to [email protected], please.
analyzing CPU 0:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 0.97 ms.
  hardware limits: 800 MHz - 3.80 GHz
  available cpufreq governors: performance, powersave
  current policy: frequency should be within 800 MHz and 3.80 GHz.
                  The governor "powersave" may decide which speed to use
                  within this range.
  current CPU frequency is 2.80 GHz.
analyzing CPU 1:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 1
  CPUs which need to have their frequency coordinated by software: 1
  maximum transition latency: 0.97 ms.
  hardware limits: 800 MHz - 3.80 GHz
  available cpufreq governors: performance, powersave
  current policy: frequency should be within 800 MHz and 3.80 GHz.
                  The governor "powersave" may decide which speed to use
                  within this range.
  current CPU frequency is 2.80 GHz.
analyzing CPU 2:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 2
  CPUs which need to have their frequency coordinated by software: 2
  maximum transition latency: 0.97 ms.
  hardware limits: 800 MHz - 3.80 GHz
  available cpufreq governors: performance, powersave
  current policy: frequency should be within 800 MHz and 3.80 GHz.
                  The governor "powersave" may decide which speed to use
                  within this range.
  current CPU frequency is 2.79 GHz.
analyzing CPU 3:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 3
  CPUs which need to have their frequency coordinated by software: 3
  maximum transition latency: 0.97 ms.
  hardware limits: 800 MHz - 3.80 GHz
  available cpufreq governors: performance, powersave
  current policy: frequency should be within 800 MHz and 3.80 GHz.
                  The governor "powersave" may decide which speed to use
                  within this range.
  current CPU frequency is 2.80 GHz.
analyzing CPU 4:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 4
  CPUs which need to have their frequency coordinated by software: 4
  maximum transition latency: 0.97 ms.
  hardware limits: 800 MHz - 3.80 GHz
  available cpufreq governors: performance, powersave
  current policy: frequency should be within 800 MHz and 3.80 GHz.
                  The governor "powersave" may decide which speed to use
                  within this range.
  current CPU frequency is 2.80 GHz.
analyzing CPU 5:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 5
  CPUs which need to have their frequency coordinated by software: 5
  maximum transition latency: 0.97 ms.
  hardware limits: 800 MHz - 3.80 GHz
  available cpufreq governors: performance, powersave
  current policy: frequency should be within 800 MHz and 3.80 GHz.
                  The governor "powersave" may decide which speed to use
                  within this range.
  current CPU frequency is 2.78 GHz.
analyzing CPU 6:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 6
  CPUs which need to have their frequency coordinated by software: 6
  maximum transition latency: 0.97 ms.
  hardware limits: 800 MHz - 3.80 GHz
  available cpufreq governors: performance, powersave
  current policy: frequency should be within 800 MHz and 3.80 GHz.
                  The governor "powersave" may decide which speed to use
                  within this range.
  current CPU frequency is 2.90 GHz.
analyzing CPU 7:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 7
  CPUs which need to have their frequency coordinated by software: 7
  maximum transition latency: 0.97 ms.
  hardware limits: 800 MHz - 3.80 GHz
  available cpufreq governors: performance, powersave
  current policy: frequency should be within 800 MHz and 3.80 GHz.
                  The governor "powersave" may decide which speed to use
                  within this range.
  current CPU frequency is 2.79 GHz.

Curiosamente, também observei o comportamento inverso: a máquina estava sob alta carga, mas as frequências estavam diminuindo até depois de ca. 20-30sec todos os núcleos atingiram ~ 800MHz. Eu verifiquei com cpufreq-info ea configuração parecia bem (governador de economia de energia, min / max freq em níveis apropriados). Infelizmente, não consigo reproduzir o erro ...

Alguma ideia do que causa esses problemas de dimensionamento ou o que poderia ser feito para corrigi-los?

    
por dassmann 15.08.2016 / 15:09

1 resposta

0

Resumo

Sim, sob determinadas condições, a versão atual do driver intel_pstate pode aumentar a frequência da CPU sob cargas bastante leves. No entanto, e normalmente, isso NÃO faria com que os "ventiladores fiquem barulhentos e o dispositivo esquente", porque os processadores relacionados agem mais rápido e, portanto, passam mais tempo em estados de sono profundo, neutralizando a maior potência ativa. Eu só fui capaz de atribuir aproximadamente um extra de 1/2 watt de potência de pacote para este problema.

Quanto à segunda parte da sua pergunta, sobre como diminuir as frequências da CPU com carga alta. Eu só posso supor que algum tipo de estrangulamento térmico esteja envolvido.

Detalhes

É muito importante definir "sem carga" ou "ocioso". Por quê? Porque em um sistema baseado em GUI, "ocioso" na verdade tem uma quantidade considerável de trabalho a ser feito. Em um sistema não baseado em GUI, "inativo" normalmente significa que há muito pouco trabalho a fazer.

Em sistemas baseados em GUI, a manifestação deste problema depende de: A taxa de Hz do kernel (100, 250, 300 ou 1000 Hz); A taxa de quadros do driver de vídeo; Quanto material de fundo está acontecendo; A maneira como o planejador gira entre as CPUs; Algumas outras coisas que eu esqueço no momento.

Embora uma correção temporária tenha sido adicionada, ela cobre apenas as cargas reais de 1% ou menos, mas a condição também pode ocorrer para cargas acima de 1%. Também não sei se essa correção está em ou foi backportada para o kernel 16.04 atual.

Uma correção melhor está em andamento, mas será em algum momento antes de ser lançada.
Enquanto isso, e se desejar, você pode voltar para o driver acpi-cpufreq. Veja aqui ou aqui para como.

Referências

link
link
link
< href="http://marc.info/?l=linux-pm&m=147000845531378&w=2"> link
link

    
por Doug Smythies 16.08.2016 / 02:03