intel_powerclamp: Erzwungene Leerlaufeinspritzung starten / stoppen

8

Ich weiß nicht wirklich, wann es angefangen hat, ich habe gerade ein Upgrade von 13.10 auf 14.04 durchgeführt und wollte etwas gegen die Grafikleistung unternehmen (die Einheit fühlte sich träge an). Diese Situation dauerte bereits 6 Monate. Ich achtete auf problematische nvidia-proprietäre Treiber in sli-Konfiguration. Ich war ernsthaft sauer auf nvidia, Unity und wollte mich für etwas entscheiden, das nichts mit Unity zu tun hat. .

Dann entdeckte ich weniger als eine Stunde bevor ich Ubuntu / Einheit tötete ...

Es hat etwas mit intel_pstate zu tun ...

Mir ist einfach aufgefallen, dass die Anmeldeleistungen fantastisch sind ... Sowohl CPU als auch GPU ... Wie ein Traum ... Dann fallen sie nach ca. 10 Sekunden ab und die Situation wird hässlich ... Ich habe durch Protokolle gejagt und im Syslog gefunden, wie es scheint mit dieser Zeile verwandt sein:

Apr 28 21:29:41 b4da55 kernel: [ 83.861621] intel_powerclamp: Start idle injection to reduce power

Nach dieser Linie sind die Aufführungen weg. Die Sitzung, die ich während des Schreibens dieses Beitrags habe, ist etwas anders ... Ich habe bei Google nach einer Möglichkeit gesucht, diese Leerlaufinjektion abzustimmen oder zu deaktivieren (zumindest während ich an Wechselstrom arbeite, nicht an Batterien), um maximale Leistung zu erzielen nichts ... Dann passierte es von alleine, diese Zeile erscheint im Syslog:

Apr 28 21:46:03 b4da55 kernel: [  362.386585] intel_powerclamp: Stop forced idle injection

Ich weiß nicht, was es verursacht hat ... Aber jetzt funktioniert es wie ein Zauber! Es ist so flüssig ... ich kann es nicht glauben ... ich denke, es rendert über 100fps ... Ich habe den Wackeleffekt aktiviert und Spaß gehabt ... htop zeigt eine viel geringere CPU-Auslastung, während ich nichts tue. ..

Kann mir jemand sagen, wie ich diese Leerlaufeinspritzung steuern kann?


quelle
2
@Ingo sein Zweck ist es , die Dinge langsam nach unten (und Ihrem Stromverbrauch reduzieren). Es gibt Dokumentation direkt von Intel direkt im Kernel.
Ulidtko
2
@ulidtko Das ist genau das Problem. Wir wissen, dass es die Dinge absichtlich verlangsamt, deshalb wollen wir es ausschalten, und die Frage war "wie".
Ingo
@ulidtko siehe auch askubuntu.com/questions/552539/…
Ingo

Antworten:

9

Warnung: Überprüfen Sie Ihre CPU-Temperatur. Auf meinem System startet die Leerlaufinjektion nur, wenn es heiß wird. Das Betriebssystem schützt die Hardware vor Überhitzung.

Siehe intel_powerclamp Handbuch . Der Abschnitt "Verwendung und Schnittstellen" beschreibt die Steuerung.

TL; DR sudo rmmod intel_powerclamp , aber Sie wurden gewarnt.

Es gibt sanftere Mittel, um das Ding zu kontrollieren.

Zuerst lokalisieren die abstrakte „thermal device“ entsprechend dem Leistungsverbrauch Regelkreis :

# grep -l intel_powerclamp /sys/class/thermal/cooling_device*/type
/sys/class/thermal/cooling_device11/type

# cd /sys/class/thermal/cooling_device11

Jetzt kann der Prozentsatz der "Verlangsamung" des Regelkreises angepasst werden:

# echo 25 > cur_state

Dort kann 0 gesetzt werden. Prozent über 50 sind nicht zulässig.


Es wäre großartig, wenn jemand ein Applet zur einfachen Steuerung dieses Geräts entwickeln würde (dh wenn jemand die offensichtlich erforderlichen allgemeinen Benutzersteuerelemente hinzufügen würde), möglicherweise mit Regeln (Wechselstrom / Batterie, Tageszeit, Bildschirmleerlauf usw.).

ulidtko
quelle
Bonus Anmerkung: Ich habe tatsächlich verwendet , intel_powerclampum ein thermisches Problem in einem Laptop zu umgehen , wobei es abortively von nur ~ Minute heruntergefahren Mine laufen. Wenn die Powerclamp aktiviert und eingestellt ist, läuft auf dem Laptop Minecraft stundenlang ohne Probleme. Interessanterweise sah der FPS mit Powerclamp flüssiger aus als ohne. Endlich: Dieser Laptop verfügt über einen leistungsstarken i5 und eine reine passive Kühlung . Das ist also eine anekdotische Situation, in der intel_powerclampes nützlich ist.
Ulidtko
1
tlpkönnte eine hilfreiche Ergänzung zu Ihrer Antwort sein: askubuntu.com/questions/391474/stop-cpu-from-overheating/…
WinEunuuchs2Unix
4

Im laufenden System können Sie Folgendes entfernen intel_powerclamp:

sudo rmmod intel_powerclamp

Um es dauerhaft zu deaktivieren und das Laden insgesamt zu unterdrücken, gehen Sie wie folgt vor:

cd /etc/modprobe.d
sudo su
echo install intel_powerclamp /bin/true  >intel_powerclamp.conf

Dann, nach einem Neustart, wird es nicht zurückkommen.

Ingo
quelle