it-swarm-es.com

Reloj de la CPU más lento después de cada reanudación del sueño

Estoy ejecutando kubuntu 15.10 en un Lenovo Y50-70, y tengo un problema muy molesto con el reloj de la CPU: cada vez que la computadora se reanuda, el reloj de la CPU tiene un máximo más bajo, y esto no sucede solo una vez, sino después cada reanudación del reloj es más lento, hasta que se redujo inicialmente de 3.6 GHz a ~ 600 MHz.

[email protected]:~$ Sudo -i
[Sudo] password for alain: 
[email protected]:~# cpupower frequency-info
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.60 GHz
  available cpufreq governors: performance, powersave
  current policy: frequency should be within 800 MHz and 3.60 GHz.
                  The governor "powersave" may decide which speed to use
                  within this range.
  current CPU frequency is 817 MHz (asserted by call to hardware).
  boost state support:
    Supported: yes
    Active: yes
[email protected]:~# cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
100
[email protected]:~# cpupower frequency-info
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.60 GHz
  available cpufreq governors: performance, powersave
  current policy: frequency should be within 800 MHz and 2.88 GHz.
                  The governor "powersave" may decide which speed to use
                  within this range.
  current CPU frequency is 800 MHz (asserted by call to hardware).
  boost state support:
    Supported: yes
    Active: yes
[email protected]:~# cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
80
[email protected]:~# cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
60
[email protected]:~# cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
40
[email protected]:~# cat /sys/devices/system/cpu/intel_pstate/max_perf_pct                                 
40                                                                                                         
[email protected]:~# cpupower frequency-info                                 
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.60 GHz                                                                      
  available cpufreq governors: performance, powersave                                                      
  current policy: frequency should be within 800 MHz and 1.44 GHz.                                         
                  The governor "powersave" may decide which speed to use                                   
                  within this range.                                                                       
  current CPU frequency is 699 MHz (asserted by call to hardware).                                         
  boost state support:                                                                                     
    Supported: yes                                                                                         
    Active: yes                                                                                            
[email protected]:~# cat /sys/devices/system/cpu/intel_pstate/max_perf_pct                                 
40                                                                                                         
[email protected]:~# cpupower frequency-info                                 
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.60 GHz                                                                      
  available cpufreq governors: performance, powersave                                                      
  current policy: frequency should be within 800 MHz and 1.44 GHz.                                         
                  The governor "powersave" may decide which speed to use                                   
                  within this range.                                                                       
  current CPU frequency is 605 MHz (asserted by call to hardware).                                         
  boost state support:                                                                                     
    Supported: yes                                                                                         
    Active: yes                                                                                            
[email protected]:~#                                                                                       

Puse la computadora dormida entre los comandos anteriores. Como puede ver, primero el max_perf_pct se reduce en pasos hasta que alcanza 40, luego se mantiene 40 pero la velocidad del reloj continúa reduciéndose. No importa si el portátil está enchufado o no, y la temperatura es normal.

Creo que puede estar relacionado con este error: https://bugzilla.kernel.org/show_bug.cgi?id=90421


El mayor problema es que no puedo encontrar una manera de configurar manualmente el reloj máximo de nuevo a 3.6 GHz. Primero probé cpupower frequency-set -u 3.60GHz:

[email protected]:~# cpupower frequency-set -u 3.60GHz
Setting cpu: 0
Setting cpu: 1
Setting cpu: 2
Setting cpu: 3
Setting cpu: 4
Setting cpu: 5
Setting cpu: 6
Setting cpu: 7
[email protected]:~# cpupower frequency-info
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.60 GHz
  available cpufreq governors: performance, powersave
  current policy: frequency should be within 800 MHz and 1.44 GHz.
                  The governor "powersave" may decide which speed to use
                  within this range.
  current CPU frequency is 699 MHz (asserted by call to hardware).
  boost state support:
    Supported: yes
    Active: yes
[email protected]:~# cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
40

pero esa parece ser la manera incorrecta porque se usa controlador Intel P-State , así que probé echo 100 >/sys/devices/system/cpu/intel_pstate/max_perf_pct sin efecto:

[email protected]:~# echo 100 >/sys/devices/system/cpu/intel_pstate/max_perf_pct
[email protected]:~# cpupower frequency-info
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.60 GHz
  available cpufreq governors: performance, powersave
  current policy: frequency should be within 800 MHz and 1.44 GHz.
                  The governor "powersave" may decide which speed to use
                  within this range.
  current CPU frequency is 700 MHz (asserted by call to hardware).
  boost state support:
    Supported: yes
    Active: yes
[email protected]:~# cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
40

También probé el gobernador performance, sin éxito.

¿Cómo puedo configurar la frecuencia máxima de reloj de nuevo a 3.6 GHz?

7
alain

El problema que está experimentando se ha informado muchas veces.
Consulte este informe de error de bugzilla .

El problema se ha aislado a una confirmación particular en el árbol del núcleo. Ese commit también ha sido respaldado a algunas versiones anteriores de kernel estable.
Sin embargo, la verdadera causa raíz real es un problema de BIOS de Lenovo. Citando del hilo de correo electrónico linux-pm:

El BIOS informa un valor de punto de disparo pasivo falso, que es 0 grados Celsius ... Para solucionar este BIOS falso, debemos desactivar esos puntos de viaje no válidos verificando el valor del punto de viaje,

Si retrocede una o dos versiones, su Lenovo funcionará correctamente (se sabe que 4.2.0-19 funciona correctamente).

Su problema no está relacionado con la modulación del reloj (registro 0x19A), a menos que su batería esté por debajo del 30% (no probada, pero sospechada).

Referencias
http://ubuntuforums.org/showthread.php?t=2316101
Extraños problemas de escalado de cpufreq: independientemente del gobernador, max cpufreq cae gradualmente al despertar
i3 estrangulado a 500Mhz cuando la batería está por debajo del 30%
http://marc.info/?t=145816738700001&r=1&w=2

6
Doug Smythies