1 votes

La mise à l'échelle de la fréquence du CPU ne fonctionne pas comme prévu sur vanilla Ubuntu 16.04

La mise à l'échelle de la fréquence du processeur de mon ordinateur portable (Intel(R) Core(TM) i7-4810MQ CPU @ 2.80GHz) ne fonctionne pas comme prévu. Après l'installation initiale d'ubuntu 16.04, je n'ai fait aucun changement concernant la gestion de l'énergie ou l'échelle de fréquence du processeur. Normalement, je suis habitué au gouverneur à la demande. Cependant, il semble que ce gouverneur ait été remplacé par un truc de type pstate et le gouverneur powersave dans les noyaux plus récents.

Même sans charge, les fréquences du processeur tournent autour de la gamme 2.x, ce qui rend les ventilateurs bruyants et fait chauffer l'appareil :

$ 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 cpufreq@vger.kernel.org, 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.

Curieusement, j'ai également observé le comportement inverse : la machine était sous forte charge mais les fréquences diminuaient jusqu'à ce qu'après environ 20-30 secondes, tous les cœurs atteignent ~ 800 MHz. 20-30sec tous les cœurs ont atteint ~ 800MHz. J'ai vérifié avec cpufreq-info et la configuration semblait correcte (gouverneur powersave, fréquence min/max à des niveaux appropriés). Malheureusement, je suis incapable de reproduire l'erreur...

Avez-vous une idée de la cause de ces problèmes de mise à l'échelle ou de ce qui pourrait être fait pour les résoudre ?

0voto

Doug Smythies Points 12803

Résumé

Oui, dans certaines conditions, la version actuelle du pilote intel_pstate peut augmenter la fréquence du CPU sous des charges assez légères. Cependant, et typiquement, cela n'entraînerait PAS le "bruit des ventilateurs et le réchauffement du dispositif", parce que les CPU concernés font leur travail plus rapidement et passent donc plus de temps en état de sommeil profond, ce qui compense la puissance active plus élevée. Je n'ai jamais été en mesure d'attribuer à ce problème qu'environ 1/2 watt supplémentaire de puissance du boîtier.

Pour ce qui est de la deuxième partie de votre question, concernant la diminution de la fréquence du processeur en cas de charge élevée. Je ne peux que supposer qu'une sorte d'étranglement thermique est impliqué.

Détails

Il est très important de définir l'expression "sans charge", ou "à vide". Pourquoi ? Parce que sur un système basé sur une interface graphique, "idle" a en fait une quantité considérable de travail à faire. Sur un système basé sur un serveur sans interface graphique, "inactif" signifie généralement qu'il y a très peu de travail à faire.

Sur les systèmes basés sur une interface graphique, la manifestation de ce problème dépend de : Le taux de Hz du noyau (100, 250, 300 ou 1000 Hz) ; Le taux de trame du pilote vidéo ; La quantité de tâches d'arrière-plan en cours ; La façon dont le planificateur tourne entre les CPU ; Quelques autres choses que j'oublie pour le moment.

Bien qu'un correctif temporaire ait été ajouté, il ne couvre que les charges réelles de 1% ou moins, mais la condition peut également se produire pour des charges supérieures à 1%. Je ne sais pas non plus si ce correctif est présent ou a été reporté dans le noyau 16.04 actuel.

Une meilleure correction est en cours, mais il faudra attendre un certain temps avant qu'elle ne soit publiée.
En attendant, et si vous le souhaitez, vous pouvez revenir au pilote acpi-cpufreq. Voir aquí o aquí pour comment.

Références

https://bugzilla.kernel.org/attachment.cgi?id=187781
https://bugzilla.kernel.org/show_bug.cgi?id=93521
https://bugzilla.kernel.org/show_bug.cgi?id=115771
http://marc.info/?l=linux-pm&m=147000845531378&w=2
http://git.kernel.org/cgit/linux/kernel/git/torvalds/linux.git/commit/?id=ffb810563c0c049872a504978e06c8892104fb6c

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X