T430 / Ubuntu 14.04 / TurboBoost macht mich wahnsinnig

kay94

New member
Registriert
24 Okt. 2013
Beiträge
31
Hi miteinander,

habe meine Probleme mit Intel TurboBoost auf meinem T430 mit Ubuntu 14.04... Zuerst war es so, dass BOINC, das nebenher läuft (ist durchgehend am Rechnen), meine CPU in den TurboBoost und damit nahe den Hitzetod getrieben hat - konnte ich mit schreiben von /sys/devices/system/cpu/cpu[n]/cpufreq/scaling_max_freq beheben, mit rc.local bei jedem Systemstart. Seither war ich glücklich - bis heute. Habe auf facebook ein Lied von irgendso einer Karaoke App angehört, das jemand gesungen hat und das hat meine CPU dann doch wieder in TurboBoost gesetzt. Wenn der Rechner sonst nichts anderes macht, wäre das nicht schlimm. Aber wenn alle Threads schon zu 100% ausgelastet sind und dann er TurboBoost kommt, springt die Temperatur ganz schnell auf 90°C und würde wohl auch nach ein zwei Minuten locker die 100°C erreichen.
Habe schon diverse Anleitungen ausprobiert mit setzen verschiedener Paremeter analog scaling_max_freq, direktes Schreiben in Hardware-Register, tlp usw., was man eben beim Googlen so findet - nichts davon hat funktioniert. Und im T430 Bios gibts netterweise auch keine Option, um TurboBoost zu deaktiveren, bzw. nur die, den Prozessor generell auf 1.2GHz und nichts anderem laufen zu lassen... Es ärgert mich offen gestanden ein wenig, dass das BIOS keine Möglichkeit bietet, den TurboBoost zu deaktiven, wie es bei anderen Mainboards möglich ist, wenn ja offensichtlich ist, dass das Kühlsystem, ist ja nunmal ein Laptop, damit überfordert ist, wenn der Rechner sowieso schon ausgelastet ist... Nur in Windoof lässt Lenovo einen das anscheinend mit dem Power Manager machen...
Lange Rede, kurzer Sinn:

Hat es hier irgendjemand schon versucht und geschafft, TurboBoost auf einem T430 oder etwas vergleichbarem aus Linux heraus zu deaktivieren? Gerne auch mit einem neueren Kernel, dann würde ich halt frisch installieren, das wärs mir wert..


Grüße
Kay
 
Wieso über scaling_max_freq? Das macht man – sofern der intel_pstate Treiber verwendet wird – über /sys/devices/system/cpu/intel_pstate/no_turbo.

Am einfachsten, Du installierst TLP (s. meine Sig.) und trägst in der Konfigurationsdatei folgendes ein:
Code:
[B]CPU_BOOST_ON_AC=0[/B]
CPU_BOOST_ON_BAT=0

Aber wenn alle Threads schon zu 100% ausgelastet sind und dann er TurboBoost kommt, springt die Temperatur ganz schnell auf 90°C und würde wohl auch nach ein zwei Minuten locker die 100°C erreichen.
Wenn alle Kerne schon ausgelastet sind, kommt eben kein Turbo Boost. Bei den Temperaturen solltest Du den Lüfter und den Wärmetauscher reinigen, sowie die Wärmeleitpaste neu machen.
 
Zuletzt bearbeitet:
Hallo linrunner,

scaling_max_freq verwende ich, weil auch die 2.6GHz Nominal-Takt insbesondere in der Docking-Station noch zu hoch sind, um vernünftige Temperaturen zu haben. Bzw. wenn ich scaling_max_freq nicht ändere, schlagen sowieso immer direkt die 3.3GHz zu. Ich dachte zuerst, das Problem sei damit behoben, habe aber eben jetzt festgestellt, dass der TurboBoost zwar nicht mehr von diesen niederprioren Prozessen ausgelöst wird, aber von anderen scheinbar immernoch... Im Moment bin ich standardmäßig bei 2.2GHz, wenns draußen warm wird geh ich noch weiter runter. So lande ich immer irgendwo zwischen 65° und 70°C oder ein bisschen mehr.

tlp habe ich schon versucht und die von dir erwähnte Einstellung auch direkt gefunden, die Konfig-Datei ist ja äußerst gut kommentiert - Kompliment dafür! intel_pstate ist geladen und sogar das no_turbo Flag steht auf 1.
Mein Governor ist power_save, ansonsten ist nur noch performance verfügbar.

Grüße
 
Zuletzt bearbeitet:
Das spricht alles dafür, dass die Kühlung nicht richtig arbeitet. Da kannst Du an der Software drehen soviel Du willst, es geht an der Ursache vorbei. Massnahmen hatte ich in meinem 1. Post erwähnt. Siehe auch http://thinkwiki.de/Lüfter_reinigen
 
Habe ich schonmal gemacht.
Die Temperaturen sind denke ich ganz normal, bevor ich das T430 hatte, das ich jetzt verwende, hatte ich für etwa 1 Woche ein anderes, das ich wegen Display Bleeding wieder zurückgeschickt habe. Da waren die Temperaturen genauso und sie decken sich auch mit den Berichten von anderen Anwendern, insbesondere auch die bei TurboBoost.
Wie gesagt, das sind die Temperaturen, wenn BOINC aktiv ist, was dann auf 4 Threads wissenschaftliche Berechnung durchführt. Im Idle hab ich ja 40-45°C.

Grüße
 
Ich habe keine Ahnung von BOINC. Aber kann man es mit "nice" starten?

Ansonsten stellt sich mir die Frage, ob es sinnvoll ist, bei voller Prozessorauslastung noch zusätzlich Multimedia zu betreiben. Oder umgekehrt, ob man, wenn man Multimedia machen will, auch noch BOINC machen sollte. Auf einem Laptop. Alles gleichzeitig geht halt nicht immer.

Ansonsten: ich weiss nicht, inwieweit das X230 vergleichbar ist. Aber mir ist es nie gelungen, es über ca. 85 Grad zu bekommen. Ich hatte etwa mal eine Indizierung von fast 100.000 Dateien, was etwa 90 Minuten volle Rechnerleistung bedeutete. Wäre aber nicht auf die Idee gekommen, mir nebenbei noch ein Video anzuschauen.
 
Vergiss den Kram mit Scaling. Dadurch verlierst du Turbo komplett, was (auch entgegen deiner Meinung) eine schlechte Idee ist.

Sinnvoller wäre es, die erlaubte TDP zu senken. Ich kenne gerade nicht alle MSR auswendig, meine aber, dass es 0x1AC sein müsste. Probier mal dies mit sudo/root:

Code:
apt-get install msr-tools
modprobe msr
wrmsr 0x1ac 0x80c8

Das sollte die TDP auf 25W (25*8 = 0xc8) senken. Wird die TDP überschritten, taktet die CPU nun so weit runter bis die TDP wieder erreicht ist, oder höchsten bis sie nicht mehr im Turbo ist.

Edit: Ist seit Sandy wohl 0x638. Also statt wie oben 0x1ac:

Code:
wrmsr 0x638 0x80c8
 
Zuletzt bearbeitet:
Ich habe keine Ahnung von BOINC. Aber kann man es mit "nice" starten?

Ansonsten stellt sich mir die Frage, ob es sinnvoll ist, bei voller Prozessorauslastung noch zusätzlich Multimedia zu betreiben. Oder umgekehrt, ob man, wenn man Multimedia machen will, auch noch BOINC machen sollte. Auf einem Laptop. Alles gleichzeitig geht halt nicht immer.
Boinc ist ein Programm für verteiltes Rechnen mit diversen Projekten, ich unterstütze damit Klimaforscher ("climatprediction.net"). Die Prozesse ("Worker") werden standardmäßig mit Nice-Wert 19 gestartet.
Deswegen und weil ein T430 mit SSD und viel Ram ja allgemein keine Krücke ist, kann ich auch mit aktivem Boinc auf allen vier Threads ziemlich flüssig arbeiten, die niederprioren Prozesse werden immer schön weg-geschedulet. Außer wenn ich jetzt in HD verschlüsselte maxdome-Streams gucke muss ich zwei von vier Workern pausieren. ;)
Also mit der Performance bin ich definitv zufrieden.

Vergiss den Kram mit Scaling. Dadurch verlierst du Turbo komplett, was (auch entgegen deiner Meinung) eine schlechte Idee ist.

Sinnvoller wäre es, die erlaubte TDP zu senken. Ich kenne gerade nicht alle MSR auswendig, meine aber, dass es 0x1AC sein müsste. Probier mal dies mit sudo/root:

Code:
apt-get install msr-tools
modprobe msr
wrmsr 0x1ac 0x80c8

Das sollte die TDP auf 25W (25*8 = 0xc8) senken. Wird die TDP überschritten, taktet die CPU nun so weit runter bis die TDP wieder erreicht ist, oder höchsten bis sie nicht mehr im Turbo ist.

Edit: Ist seit Sandy wohl 0x638. Also statt wie oben 0x1ac:

Code:
wrmsr 0x638 0x80c8
Das Scaling hat bei mir TurboBoost eben nicht deaktiviert. Und es war bisher die einzige Möglichkeit, den Takt in 99% der Fälle auf genau den Wert zu begrenzen, bei dem ich die CPU Temperatur für okay halte.
TurboBoost brauche ich nicht, kann wie gesagt auch sehr gut ohne arbeiten. Bzw. wichtiger ist für mich, dass ich ihn auf keinen Fall haben möchte, sobald Boinc läuft. Wobei ich dir zustimme, dass das gewisse eine gute Sache ist, aber für meinen Anwendungsfall eben unpassend.
Danke, dass du die Befehle auch erklärt hast. Ich hatte eine ähnliche Anleitung schonmal gefunden, aber da war stets von 0x1ac die Rede und vor allem kein Wort davon, was der Befehl eigentlich anstellt. ;) Habe es mit 0x80c8 und sogar 0x8050 probiert, scheint beides nicht funktioniert zu haben.
Wobei ich dazu sagen muss, dass ich den TurboBoost im Moment leider nicht zuverlässig reproduzieren kann, habe nur durch wildes öffnen und schließen großer Anwendungen sehen können, dass er immernoch aktiv wird.
Langsam zweifle ich ein bisschen an meinem System - kann ja nicht sein, dass alle Anleitungen fehlschlagen.

Grüße
 
Lass mal turbostat -d oder i7z laufen, das sollte dir anzeigen, was wirklich passiert. Ich bevorzuge turbostat, das zeigt beim Start auch gleich TDP Limits und ähnliches und den Leistungsverlauf.

0x1ac war das bei der ersten Core-i Generation (Nehalem).
 
Hi,

turbostat -d funktioniert bei mir nicht, nur einfaches turbostat:
Code:
    Core     CPU Avg_MHz   %Busy Bzy_MHz TSC_MHz     SMI  CPU%c1  CPU%c3  CPU%c6  CPU%c7 CoreTmp  PkgTmp Pkg%pc2 Pkg%pc3 Pkg%pc6 Pkg%pc7 PkgWatt CorWatt GFXWatt 
       -       -    1696   99.98    1696    2594       0    0.02    0.00    0.00    0.00      62      62    0.00    0.00    0.00    0.00   10.71    6.73    0.57
       0       0    1696  100.00    1696    2594       0    0.00    0.00    0.00    0.00      61      62    0.00    0.00    0.00    0.00   10.71    6.73    0.57
       0       1    1695   99.93    1696    2594       0    0.07
       1       2    1696  100.00    1696    2594       0    0.00    0.00    0.00    0.00      62
       1       3    1696  100.00    1696    2594       0    0.00

i7z liefert folgendes:
Code:
Cpu speed from cpuinfo 2593.00Mhz
cpuinfo might be wrong if cpufreq is enabled. To guess correctly try estimating
Linux's inbuilt cpu_khz code emulated now
True Frequency (without accounting Turbo) 2593 MHz
  CPU Multiplier 26x || Bus clock frequency (BCLK) 99.73 MHz

Socket [0] - [physical cores=2, logical cores=4, max online cores ever=2]
  TURBO ENABLED on 2 Cores, Hyper Threading ON
  Max Frequency without considering Turbo 2692.73 MHz (99.73 x [27])
  Max TURBO Multiplier (if Enabled) with 1/2/3/4 Cores is  33x/31x/31x/31x
  Real Current Frequency 2194.08 MHz [99.73 x 22.00] (Max of below)
        Core [core-id]  :Actual Freq (Mult.)      C0%   Halt(C1)%  C3 %   C6 %
        Core 1 [0]:       2194.08 (22.00x)       100    15.4       0       0
        Core 2 [2]:       2194.08 (22.00x)      98.7    16.5       0       0





C0 = Processor running without halting
C1 = Processor running with halts (States >C0 are power saver)
C3 = Cores running with PLL turned off and core cache turned off
C6 = Everything in C3 + core state saved to last level cache
  Above values in table are in percentage over the last 1 sec

wenn ich dann ein
Code:
echo 1 | sudo tee /sys/devices/system/cpu/intel_pstate/no_turbo
mache ändert sich die Ausgabe zu Folgnedem (Frequenz sinkt von 2.2GHz auf 1.7GHz, TurboBoost sei nach wie vor Enabled):

Code:
Cpu speed from cpuinfo 2593.00Mhz
cpuinfo might be wrong if cpufreq is enabled. To guess correctly try estimating
Linux's inbuilt cpu_khz code emulated now
True Frequency (without accounting Turbo) 2593 MHz
  CPU Multiplier 26x || Bus clock frequency (BCLK) 99.73 MHz

Socket [0] - [physical cores=2, logical cores=4, max online cores ever=2]
  TURBO ENABLED on 2 Cores, Hyper Threading ON
  Max Frequency without considering Turbo 2692.73 MHz (99.73 x [27])
  Max TURBO Multiplier (if Enabled) with 1/2/3/4 Cores is  33x/31x/31x/31x
  Real Current Frequency 1696.08 MHz [99.73 x 17.01] (Max of below)
        Core [core-id]  :Actual Freq (Mult.)      C0%   Halt(C1)%  C3 %   C6 %
        Core 1 [0]:       1696.08 (17.01x)       100    34.6       0       0
        Core 2 [2]:       1696.08 (17.01x)       100    34.6       0       0





C0 = Processor running without halting
C1 = Processor running with halts (States >C0 are power saver)
C3 = Cores running with PLL turned off and core cache turned off
C6 = Everything in C3 + core state saved to last level cache
  Above values in table are in percentage over the last 1 sec


Grüße
 
Zuletzt bearbeitet:
Oh, dann ist die turbostat Version noch etwas veraltet. Macht aber nichts.

Wundern mich eh, die Werte. Die CPU hat wohl 2.6GHz ohne Turbo (TSC_MHz), taktet aber bereits weit darunter? Versteh ich nicht. Muss wohl an intel_pstate liegen. Der Treiber macht immer, was er will. Der gute alte cpufreq hat das besser gemacht.

Jedenfall, zum Experimentieren einfach mal Bzy_MHz und PkgWatt im Auge behalten, die sind sehr hilfreich.
 
Die 2.2GHz liegen an mir, hab ich mit scaling_max_freq so eingestellt ;)
Danke dir jedenfalls, habe mir auch vorgenommen, mal mit Downvolting zu experimentieren.

Grüße
Kay
 
Hallo,

ist zwar schon eine Weile her, aber ich habe, nachdem es mich ab und zu dann doch wieder ziemlich genervt hat, inzwischen eine Lösung. Möchte das daher hier kurz ergänzen für alle anderen T430 Besitzer, die ihren Laptop mit Linux manchmal auch ordentlich fordern und dabei über die hohen Temperaturen schockiert sind.
Es handelt sich tatsächlich um einen Bug, bei dem die GPU trotz eigentlich deaktiviertem Turbo Frequenzen über 2.6GHz auslöst (/sys/devices/system/cpu/intel_pstate/no_turbo). Den Bug-Report gibts hier:

https://bugzilla.kernel.org/show_bug.cgi?id=196757

Ein kleines Script, mit dem man Turbo Boost zuverlässig deaktivieren kann, gibts hier:

https://github.com/kayb94/no_turbo


Verbesserungsvorschläge herzlich willkommen! Laut Herrn Pandruvada besteht das Problem auch für andere Systeme, Zitat: "It is not laptop model specific can be useful for laptops which has GPU demanding more power to meet its max frequency."

Grüße Kay
 
Falls du tlp installiert hast, kannst du den Turbo auch deaktivieren (wenn ich mich recht entsinne)
 
Das funktionert nicht. tlp macht schließlich nichts anders, als no_turbo auf 1 zu setzen. Und der im bugreport beschriebene Bug ist ja, dass das nicht ausreicht.
 
  • ok1.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen
Zurück
Oben