Meu cpu desacelera depois de um tempo e não recupera

0

Às vezes, e não consigo reproduzi-lo (mas acontece com bastante frequência - algumas vezes por semana, pelo menos), minha CPU desacelera abaixo do mínimo prescrito. Este é um exemplo de cpufreq-info output de um minuto atrás:

    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.30 GHz
      available cpufreq governors: performance, powersave
      current policy: frequency should be within 800 MHz and 3.30 GHz.
                      The governor "powersave" may decide which speed to use
                      within this range.
      current CPU frequency is 610 MHz.
    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.30 GHz
      available cpufreq governors: performance, powersave
      current policy: frequency should be within 800 MHz and 3.30 GHz.
                      The governor "powersave" may decide which speed to use
                      within this range.
      current CPU frequency is 615 MHz.
    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.30 GHz
      available cpufreq governors: performance, powersave
      current policy: frequency should be within 800 MHz and 3.30 GHz.
                      The governor "powersave" may decide which speed to use
                      within this range.
      current CPU frequency is 590 MHz.
    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.30 GHz
      available cpufreq governors: performance, powersave
      current policy: frequency should be within 800 MHz and 3.30 GHz.
                      The governor "powersave" may decide which speed to use
                      within this range.
      current CPU frequency is 589 MHz.

O problema é que isso realmente atrasa tudo. O Firefox se torna mais lento, o tempo de inicialização do vim aumenta de 150-250ms para acima de 700ms, g++ de compilações se tornam três vezes mais lentas, etc.

O reinício corrige tudo.

Alguma linha de erro das últimas horas do meu syslog:

    May 17 16:10:53 lati kernel: [ 1421.872755] ACPI Error: Index value 0x0000000000000083 overflows field width 0x7 (20140424/exfldio-343)
    May 17 16:10:53 lati kernel: [ 1421.872758] ACPI Error: Method parse/execution failed [\NEVT] (Node ffff88040e047258), AE_AML_REGISTER_LIMIT (20140424/psparse-536)
    May 17 16:10:53 lati kernel: [ 1421.872761] ACPI Error: Method parse/execution failed [\_SB_.PCI0.LPCB.ECDV._Q66] (Node ffff88040e044b90), AE_AML_REGISTER_LIMIT (20140424/psparse-536)
    May 17 16:10:56 lati kernel: [ 1425.907749] ACPI Error: Index value 0x0000000000000083 overflows field width 0x7 (20140424/exfldio-343)
    May 17 16:10:56 lati kernel: [ 1425.907765] ACPI Error: Method parse/execution failed [\NEVT] (Node ffff88040e047258), AE_AML_REGISTER_LIMIT (20140424/psparse-536)
    May 17 16:10:56 lati kernel: [ 1425.907794] ACPI Error: Method parse/execution failed [\_SB_.PCI0.LPCB.ECDV._Q66] (Node ffff88040e044b90), AE_AML_REGISTER_LIMIT (20140424/psparse-536)
    May 17 16:12:09 lati kernel: [    1.925333] EXT4-fs (sda5): re-mounted. Opts: errors=remount-ro
    May 17 16:12:09 lati kernel: [    2.421037] systemd-udevd[331]: Error calling EVIOCSKEYCODE: Invalid argument
    May 17 16:12:21 lati gnome-session[2251]: WARNING: Could not parse desktop file tracker-store.desktop or it references a not found TryExec binary
    May 17 16:12:21 lati gnome-session[2251]: WARNING: Could not parse desktop file tracker-miner-fs.desktop or it references a not found TryExec binary
    May 17 16:12:51 lati gnome-session[2251]: GLib-CRITICAL: g_environ_setenv: assertion 'value != NULL' failed
    May 17 17:48:19 lati kernel: [ 5769.576717] systemd-hostnamed[6983]: Warning: nss-myhostname is not installed. Changing the local hostname might make it unresolveable. Please install nss-myhostname!

Estou usando o Ubuntu 14.04.2, nova instalação, 64 bits, no Dell E7440, versão A14 do BIOS.

A propósito, até mesmo a execução de lsb_release , quando estou neste modo, está demorando cerca de 400ms.

Informações adicionais

  • Nome do meu modelo de processador: CPU Intel (R) Core (TM) i7-4600U @ 2.10GHz
  • Número do meu modelo de processador: 69
  • Provavelmente ocorre apenas após uma suspensão, mas geralmente isso não acontece (por exemplo, isso aconteceu apenas uma vez desde que eu fiz essa pergunta).

Informação extra (2)

Saída de grep -r . * em /sys/class/thermal :

    cooling_device0/type:Processor
    cooling_device0/power/control:auto
    cooling_device0/power/async:disabled
    cooling_device0/power/runtime_enabled:disabled
    cooling_device0/power/runtime_active_kids:0
    cooling_device0/power/runtime_active_time:0
    cooling_device0/power/runtime_status:unsupported
    cooling_device0/power/runtime_usage:0
    cooling_device0/power/runtime_suspended_time:0
    cooling_device0/cur_state:0
    cooling_device0/max_state:3
    cooling_device1/type:Processor
    cooling_device1/power/control:auto
    cooling_device1/power/async:disabled
    cooling_device1/power/runtime_enabled:disabled
    cooling_device1/power/runtime_active_kids:0
    cooling_device1/power/runtime_active_time:0
    cooling_device1/power/runtime_status:unsupported
    cooling_device1/power/runtime_usage:0
    cooling_device1/power/runtime_suspended_time:0
    cooling_device1/cur_state:0
    cooling_device1/max_state:3
    cooling_device2/type:Processor
    cooling_device2/power/control:auto
    cooling_device2/power/async:disabled
    cooling_device2/power/runtime_enabled:disabled
    cooling_device2/power/runtime_active_kids:0
    cooling_device2/power/runtime_active_time:0
    cooling_device2/power/runtime_status:unsupported
    cooling_device2/power/runtime_usage:0
    cooling_device2/power/runtime_suspended_time:0
    cooling_device2/cur_state:0
    cooling_device2/max_state:3
    cooling_device3/type:Processor
    cooling_device3/power/control:auto
    cooling_device3/power/async:disabled
    cooling_device3/power/runtime_enabled:disabled
    cooling_device3/power/runtime_active_kids:0
    cooling_device3/power/runtime_active_time:0
    cooling_device3/power/runtime_status:unsupported
    cooling_device3/power/runtime_usage:0
    cooling_device3/power/runtime_suspended_time:0
    cooling_device3/cur_state:0
    cooling_device3/max_state:3
    cooling_device4/type:intel_powerclamp
    cooling_device4/power/control:auto
    cooling_device4/power/async:disabled
    cooling_device4/power/runtime_enabled:disabled
    cooling_device4/power/runtime_active_kids:0
    cooling_device4/power/runtime_active_time:0
    cooling_device4/power/runtime_status:unsupported
    cooling_device4/power/runtime_usage:0
    cooling_device4/power/runtime_suspended_time:0
    cooling_device4/cur_state:-1
    cooling_device4/max_state:50
    thermal_zone0/mode:enabled
    thermal_zone0/temp:25000
    thermal_zone0/type:acpitz
    thermal_zone0/power/control:auto
    thermal_zone0/power/async:disabled
    thermal_zone0/power/runtime_enabled:disabled
    thermal_zone0/power/runtime_active_kids:0
    thermal_zone0/power/runtime_active_time:0
    thermal_zone0/power/runtime_status:unsupported
    thermal_zone0/power/runtime_usage:0
    thermal_zone0/power/runtime_suspended_time:0
    thermal_zone0/trip_point_0_temp:107000
    thermal_zone0/trip_point_0_type:critical
    thermal_zone0/policy:step_wise
    thermal_zone0/passive:0
    thermal_zone1/temp:47000
    thermal_zone1/type:x86_pkg_temp
    thermal_zone1/power/control:auto
    thermal_zone1/power/async:disabled
    thermal_zone1/power/runtime_enabled:disabled
    thermal_zone1/power/runtime_active_kids:0
    thermal_zone1/power/runtime_active_time:0
    thermal_zone1/power/runtime_status:unsupported
    thermal_zone1/power/runtime_usage:0
    thermal_zone1/power/runtime_suspended_time:0
    thermal_zone1/trip_point_0_temp:0
    thermal_zone1/trip_point_0_type:passive
    thermal_zone1/trip_point_1_temp:0
    thermal_zone1/trip_point_1_type:passive
    thermal_zone1/policy:step_wise
    
por Bach 17.05.2015 / 18:59

1 resposta

2

O problema ainda ocorre?
Eu estou ansiosamente procurando confirmação ou negação do que eu penso que está acontecendo.

A teoria é que, de alguma forma (suspeita-se de um problema de BIOS), após uma modulação de relógio suspensa ter sido ativada. A versão atual do driver intel_pstate é incompatível com qualquer uso da Modulação do Relógio, sempre resultando na redução do pstate de destino para o mínimo, independentemente da carga. O resultado é a frequência aparente da CPU presa em Porcentagem mínima de modulação. O driver acpi-cpufreq funciona bem com a modulação do relógio, resultando na frequência desejada * modulação por cento. (ou seja, a questão é menos óbvia com o driver acpi-cpufreq.)

Por favor faça os seguintes testes:
1.) (necessário uma vez por inicialização)

sudo modprobe msr

2.) antes de qualquer suspensão:

sudo rdmsr -a 0x19a

3.) após uma suspensão que resulta nas baixas freqüências de CPU:

sudo rdmsr -a 0x19a

4.) Se o resultado do passo 3 não for 0, então:

sudo wrmsr -a 0x19a 0x0

e verifique:

sudo rdmsr -a 0x19a

5.) São as frequências da CPU O.K. agora?

Coloque de volta aqui todas as saídas.

Nota: o rdmsr e o wrmsr estão contidos no pacote msr-tools, o qual não lembro se foi instalado por padrão ou não.

EDIT:

Se você puder, o especialista no assunto de intel em interações térmicas e pstates também quer a saída de:

cd /sys/class/thermal
grep -r . *
    
por Doug Smythies 22.08.2015 / 01:43