web-dev-qa-db-fra.com

Horloge du processeur plus lente après chaque reprise de veille

J'utilise kubuntu 15.10 sur un Lenovo Y50-70 et le problème de l'horloge du processeur est très gênant: à chaque fois que l'ordinateur quitte le mode veille, l'horloge du processeur a un maximum inférieur, et cela ne se produit pas qu'une seule fois, mais après. à chaque reprise, l’horloge est plus lente, jusqu’à ce qu’elle passe de 3,6 GHz à environ 600 MHz.

alain@alain-Y50-70:~$ Sudo -i
[Sudo] password for alain: 
root@alain-Y50-70:~# 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
root@alain-Y50-70:~# cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
100
root@alain-Y50-70:~# 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
root@alain-Y50-70:~# cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
80
root@alain-Y50-70:~# cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
60
root@alain-Y50-70:~# cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
40
root@alain-Y50-70:~# cat /sys/devices/system/cpu/intel_pstate/max_perf_pct                                 
40                                                                                                         
root@alain-Y50-70:~# 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                                                                                            
root@alain-Y50-70:~# cat /sys/devices/system/cpu/intel_pstate/max_perf_pct                                 
40                                                                                                         
root@alain-Y50-70:~# 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                                                                                            
root@alain-Y50-70:~#                                                                                       

Je mets l'ordinateur endormi entre les commandes ci-dessus. Comme vous pouvez le constater, le max_perf_pct est d'abord réduit par paliers jusqu'à atteindre 40, puis il reste 40 mais la vitesse d'horloge continue à être réduite. Peu importe si l'ordinateur portable est branché ou non, et la température est normale.

Je pense que cela pourrait être lié à ce bogue: https://bugzilla.kernel.org/show_bug.cgi?id=90421


Le plus gros problème est que je ne trouve pas le moyen de régler manuellement l’horloge maximale à 3,6 GHz. J'ai d'abord essayé cpupower frequency-set -u 3.60GHz:

root@alain-Y50-70:~# 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
root@alain-Y50-70:~# 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
root@alain-Y50-70:~# cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
40

mais cela semble être une mauvaise solution car le pilote Intel P-State est utilisé. J'ai donc essayé echo 100 >/sys/devices/system/cpu/intel_pstate/max_perf_pct sans effet:

root@alain-Y50-70:~# echo 100 >/sys/devices/system/cpu/intel_pstate/max_perf_pct
root@alain-Y50-70:~# 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
root@alain-Y50-70:~# cat /sys/devices/system/cpu/intel_pstate/max_perf_pct
40

J'ai aussi essayé le gouverneur performance, sans succès.

Comment puis-je régler la fréquence d'horloge maximale sur 3.6 GHz?

7
alain

Le problème que vous rencontrez a été signalé à plusieurs reprises.
Veuillez vous référer à ce rapport de bug de bugzilla .

Le problème a été isolé pour un commit spécifique dans l'arborescence du noyau. Ce commit a également été rétroporté sur certaines versions antérieures du noyau stable.
Cependant, la cause première réelle est un problème lié au BIOS Lenovo. Citant le fil de discussion de linux-pm:

Le BIOS indique une valeur de point de déclenchement passif factice, qui est égale à 0 degré Celsius ... Pour contourner ce faux BIOS, désactivez ces points de déclenchement non valides en vérifiant la valeur du point de déclenchement,

Si vous revenez sur une ou deux versions, votre Lenovo fonctionnera correctement (il est connu que 4.2.0-19 fonctionne correctement).

Votre problème n’est pas lié à la modulation d’horloge (registre 0x19A), sauf si votre batterie est inférieure à 30% (non prouvée, mais suspectée).

Références:
http://ubuntuforums.org/showthread.php?t=2316101
Étranges problèmes de mise à l’échelle de cpufreq: quel que soit le gouverneur, cpufreq max chute progressivement à l’éveil
i3 étranglé à 500 Mhz lorsque la batterie est sous 30%
http://marc.info/?t=145816738700001&r=1&w=2

6
Doug Smythies