T450s Stromsparmodi unter Linux

valworx

New member
Registriert
26 Okt. 2015
Beiträge
14
Hallo zusammen!
Zuerst mal vielen dank für die Arbeit an tlp! Der geringere Stromverbrauch ist echt super, die Ladeschwellen sind dann noch die Kirsche.
Ich komme mit der Intel GPU unter 5W, das ist schon recht toll, unter Windows 10 scheinen manchmal Werte uter 4W auf. Darum geht es mir jetzt aber gar nicht.
Ich verwende auf meinem T450s mit Nvidia GPU Linux Mint 17.2 KDE mit dem ubuntu vivid kernel. Nur wenn der latop mit Netzteil gestartet wird oder aus dem standby aufwacht kommt das package auch in den pc6 state und der Rechner unter die 5W.
Wenn der Laptop im Akkubetrieb gebootet wird oder aus demstandby aufwacht kommt das package nur in den pc2 state.
Mein Testszenario:
Laptop in standby bringen, Netzteil antecken, aufwecken, Netzteil abstecken => pc6, nochmal standby, aufwecken => pc2
kann ich endlos in einer Schleife wiederholen, verhalten ist absolut reproduzierbar.
Folgende Feststellungen habe ich bis jetzt:
1.) Das verhalten ist unabhängig der GPU. mit der Nvidia GPU ist der Stromverbrauch einfach um 1-2W höher. [Intel: 5W(pc6) vs 6W(pc2), Nvidia 7W(pc6) vs 8W(pc2)]
2.) Ob das Netzteil beim Schlafen gehen angsteckt ist, macht keinen Unterschied, es geht nur um den Moment des Aufwachens.
3.) Im Akkubetrieb sudo tlp ac und dann sudo tlp start aufrufen bringt keine Besserung
4.) min_power scheint die einzige Vorraussetzung für pc6 zu sein. Mit SATA_LINKPWR_ON_AC=min_power kommt das package sogar im Netzbetrieb in den pc6 state. Alle anderen Werte für AC sind in den unveränderten performance Einstellungen. Das glt aber nur, wenn das Netzteil beim Aufwachen angesteckt war. Ich habe es noch nicht zusammen gebracht pc6 zu aktivieren, wenn das Netzteil beim Aufwachen nicht angesteckt war. Anderererseits muss ich lediglich medium_power oder max_performance setzten um pc6 zu verhindern wenn das Netzteil beim Aufwachen angesteckt war,
5.) cat /sys/class/scsi_host/host0/link_power_management_policy bringt immer den erwarteten Output. Wenn ich im Akkubetrieb boote und dann das Netzteil kurz an- und wieder ausstecke kommt also zuerst min_power, dann max_performance und zum Schluss wieder min_power . Trotzdem kein pc6, weil im Akkubetrieb gestartet wurde.

Nachdem das SATA link power management soviel Einfluss hat vermute ich in der Richtung das Problem. Sowohl cat als auch powertop (wahrscheinlich auch nur cat) lassen aber eine normale Funktion vermuten.
tlp-stat hat auch immer den identen Output. Ich finde einfach nicht den Unterschied im System, der vom angesteckten Netzteil verursacht wird. hmmm...

Debug output von tlp (zu viele Zeichen für einen Beitrag, daher pastebin):
http://pastebin.com/rNBGFxPs
tlp-stat:
http://pastebin.com/6uyTG5ZJ
 
Zuletzt bearbeitet:
Hi valworx,

willkommen im Forum! :D

Eine Diagnose ist hier nicht so einfach, Du hast ja selbst schon ausführlich analysiert. Im Kern geht es hier nicht um TLP sondern um Verständigungsprobleme zwischen Linux (sprich: Kernel) und der Hardware. Mein Rat wird daher auch etwas schematisch ausfallen.

Übrigens möchte ich immer zuerst die Ausgabe von tlp-stat sehen, Debug Output nur auf explizite Anforderung.

Ich würde folgendes probieren:

  • Neuesten Ubuntu 3.19 Kernel – falls Du es nicht explizit aktiviert hast, macht Mint keine Kernelupdates (mit der tlp-stat-Ausgabe müsste ich die Frage nicht stellen)
  • Anderen Kernel, also z.B. den neuesten Mainline oder auch einen älteren aus dem Ubuntu-Repos
  • UEFI-BIOS Update
  • SSD-Firmware Update

ps. Interessantes Problem, ich plane ja selbst die Anschaffung eines T450s ... :D
 
Danke für deine Antwort, linrunner!
Meine vorigen posts verschwinden nach dem Editieren immer für eine Weile. Der tlp-stat output wurde vom mod gekürzt und mein edit mit dem pastebin link ist wohl noch nicht sichtbar. Hier also nochmal zusätzlich: http://pastebin.com/6uyTG5ZJ
Mit dem standard kernel von Mint (3.16.0-38-generic #52~14.04.1-Ubuntu SMP Fri May 8 09:43:57 UTC 2015 x86_64) ist das Verhalten komplett ident.
BIOS Update ist das neueste vom September oben.
Bei Lenovo gibt es derzeit nur HDD Updates für das T450s.

P.S.:
Falls du dir eines anschaffst:
Als Entwickler magst du vielleicht auch lieber ein US Tastatur Layout.
Die original DE-Tastatur war relativ glänzend. Nicht spiegelnd, aber trotzdem sind die Fingerfettspuren sehr deutlich erkennbar. Ich habe mir auf ebay eine US Tastatur (04X0139) bestellt, diese ist anders beschaffen und hier merkt man nichts von den Fingerabdrücken.
Bei der Montage beachten: Das T450(s) verwendet die selbe Tastatur wie das T440, aber es sind zusätzlich zwei neu hinzugekommene Gummisicherungen unter dem Akku zu entfernen!
 
tlp-stat zeigt erwartungsgemäß keine Auffälligkeiten, alles wird hübsch ordentlich wie konfiguriert geschrieben.

Probier noch den neuesten Mainline-Kernel. Danach sind meine Ideen erstmal alle ...

Meine vorigen posts verschwinden nach dem Editieren immer für eine Weile.
Das ist der freundliche Spamschutz des Forums, der bei neuen Usern, die die Unverfrorenheit besitzen, nützliche Links zu posten ;), unerbittlich zubeißt. Soll aber beim Speichern des Posts eine diesbezügliche Meldung auswerfen.
Der tlp-stat output wurde vom mod gekürzt
Ich wüßte nicht, dass unsere Mods so etwas tun.
 
Mit linux-image-4.3.0-040300rc6-generic (amd64) ist das Verhalten ident. pc6 wenn das Netzteil beim Aufwachen angesteckt war, ansonsten nur pc2.
Für linux-image-4.2.4-040204-generic (amd64) haben die Module für die GPU leider nicht kompiliert. Da war das Verhalten aber an sich gleich bis auf den Unterschied, dass ich nach dem Aufwachen mit Netzteil nur pc3 statt pc6 erreiche. Beim Start im Akkubetrieb wie gehabt nur pc2.
 
1.) Ich habe statt tlp auch mal laptop-mode-tools mit zusätzlichem tuning durch powertop ausprobiert. (BTW: Selber Stromverbrauch wie mit tlp.)
2.) Intel Rapid Start habe ich testweise deaktiviert, weil es ja prinzipiell auch die Festplatte benötigt.
3.) Die Speedstep Modes im BIOS habe ich in allen Kombinationen ausprobiert. http://imgur.com/Oxa2uJS
Alles wie erwartet ohne Einfluss auf das Verhalten.
Die Festplatte auf Verdacht austauschen mag ich eigentlich nicht. Die Bodenplatte scheint beim T450s nicht so leicht runter zu gehen, das möchte ich mir sparen bis es tatsächlich mal nötig ist.
Außerdem gibt es das Verhalten nur unter Linux. Windows 10 kommt immer in den niedrigsten Strombereich von 4W. Ich habe zwar kein Tool gefunden, dass bei broadwell chips die p states auslesen kann, aber ohne pc6 komme ich unter linux nie unter 5W. Ich gehe davon aus, dass auch Windows das nicht ohne pc6 schaffen kann.

edit:
Neuestes Symptom: Wenn das Thinkpad im nopc6 state ist (also im Akkubetrieb gestartet) leidet auch die Schreibperformance extrem.

Gestartet mit Netzteil:
dd if=/dev/zero of=/tmp/testfile1 bs=32M count=128
128+0 records in
128+0 records out
4294967296 bytes (4,3 GB) copied, 8,15972 s, 526 MB/s


Gestartet mit Akku:
dd if=/dev/zero of=/tmp/testfile1 bs=32M count=128
128+0 records in
128+0 records out
4294967296 bytes (4,3 GB) copied, 57,1003 s, 75,2 MB/s


Wie üblich hat der Inhalt von /sys/class/scsi_host/host*/link_power_management_policy oder die Installation von tlp keinen Einfluss auf das Verhalten.

Edit:
Dieses Verhalten ist mit der Crucial M500 SSD nicht mehr reproduzierbar.
Die SSD wird trotzdem getauscht, weil das T450s mit Bios Versionen 1.18 und 1.19 und der Crucial M500 mit Firmware MU03 bzw. MU05 bei jedem zweiten oder dritten Boot den Fehler 2100 [Detection error on HDD0 (Main HDD)]wirft.
 
Zuletzt bearbeitet:
kurzes Update zum PC6 Thema:
Wenn der Laptop aus dem Intel Rapid Start sleep im Akkubetrieb aufwacht, aber vor der Übergabe an das OS in den Netzbetrieb wechselt, kann danach auch in den PC6 gewechselt werden.
Zur Erklärung von Intel Rapid Start ("30day standby"):
Das ist eine Variation des hibernate sleep, wo das EFI die Übernahme des RAM auf die Festplatte übernimmt.
Nach einer definierten Zeit im standard "RAM-sleep" wacht der Laptop selbstständig auf, übergibt aber nicht an das OS sondern schreibt den Inhalt des RAM auf eine spezielle Partition auf der Festplatte und schaltet sich danach komplett aus. Wird der Laptop danach mit dem Power Knopf wieder eingeschaltet, wird nicht normal gebootet, sondern das EFI schreibt den Inhalt der Partition wieder in den RAM zurück und übergibt danach an das OS, als ob es die ganze Zeit im "RAM-sleep" gewesen wäre.
Das legt wieder nahe, dass die ganze Sache nur eine Kernel Sache ist. Die Hardware wird vom EFI im Akkubetrieb initialisiert, aber der Kernel sieht sie nach der Übergabe zuerst im Netzbetrieb.
Edit:
Ich habe die verbaute Liteon LCH-512V2 gegen eine alte Curcial M500 480GB ausgetauscht und das Problem ist behoben!
 
Zuletzt bearbeitet:
Hallo,

ich verfüge nun auch über ein T450s mit reiner Intel-Grafik sowie der besagten SSD Liteon LCH-256V2S und kann den Sachverhalt bestätigen.

pc6 wird nur angesteuert (lt. powertop) bei:

  • Start am Netzteil oder
  • Resume am Netzteil
und nachfolgendem Abstecken des Netzteils --> s. Screenshot

powertop_T450s_pc6.png


Irreversibel verharrt sie hingegen im pc2 bei:

  • Start im Akkubetrieb oder
  • Resume im Akkubetrieb

+++ System Info
System = LENOVO ThinkPad T450s 20BX0049GE
BIOS = JBET54WW (1.19 )
Release = Ubuntu 14.04.3 LTS
Kernel = 4.2.0-22-generic #27~14.04.1-Ubuntu SMP Fri Dec 18 10:57:53 UTC 2015 x86_64
/proc/cmdline = BOOT_IMAGE=/vmlinuz-4.2.0-22-generic root=/dev/mapper/vg_xyzzy-lv_root ro quiet splash bootchart=disable vt.handoff=7

+++ Processor
CPU Model = Intel(R) Core(TM) i5-5200U CPU @ 2.20GHz

+++ Storage Devices
/dev/sda:
Model = LITEON LCH-256V2S
Firmware = 3C87901

ps. Ubuntu bootet übrigens ohne UEFI und Rapid Start ist auch deaktiviert.

ps2. hier wird übrigens die Abhängigkeit des rc6/7 zu ALPM beschrieben. Klappt nur leider trotz min_power nicht ...
 
Zuletzt bearbeitet:
Bei mir funktioniert nach dem Wechsel der SSD alles wie es soll.
Bei der Crucial M500 480GB (Bios Versionen 1.18/1.19, Crucial Firmware MU03/MU05) gab es nur bei jedem zweiten oder dritten Boot den Fehler 2100 [Detection error on HDD0 (Main HDD)]. Im Betrieb hat aber alles funktioniert wie es soll. Mit der Samsung EVO 850 500GB gibt es weder beim Booten noch im Betrieb Probleme
Hier ein paar Messungen nach dem Aufwachen aus dem Intel Rapid Start im Akkubetrieb unter Linux Mint 17.2 (signed kernel und rEFInd mit secureboot):

uname -a:
Linux T450s 3.19.0-39-generic #44~14.04.1-Ubuntu SMP Wed Dec 2 10:00:35 UTC 2015 x86_64 x86_64 x86_64 GNU/Linux

tlp-stat -b:
--- TLP 0.8 --------------------------------------------

+++ ThinkPad Extended Battery Functions
tp-smapi = inactive (kernel module 'tp_smapi' not installed)
tpacpi-bat = active

+++ ThinkPad Battery Status: BAT0 (Main / Internal)
/sys/class/power_supply/BAT0/manufacturer = SANYO
/sys/class/power_supply/BAT0/model_name = 45N1773
/sys/class/power_supply/BAT0/cycle_count = (not supported)
/sys/class/power_supply/BAT0/energy_full_design = 23200 [mWh]
/sys/class/power_supply/BAT0/energy_full = 22690 [mWh]
/sys/class/power_supply/BAT0/energy_now = 17750 [mWh]
/sys/class/power_supply/BAT0/power_now = 0 [mW]
/sys/class/power_supply/BAT0/status = Unknown (threshold effective)

tpacpi-bat.BAT0.startThreshold = 70 [%]
tpacpi-bat.BAT0.stopThreshold = 80 [%]
tpacpi-bat.BAT0.forceDischarge = 0

+++ ThinkPad Battery Status: BAT1 (Ultrabay / Slice / Replaceable)
/sys/class/power_supply/BAT1/manufacturer = SANYO
/sys/class/power_supply/BAT1/model_name = 45N1775
/sys/class/power_supply/BAT1/cycle_count = (not supported)
/sys/class/power_supply/BAT1/energy_full_design = 23200 [mWh]
/sys/class/power_supply/BAT1/energy_full = 21760 [mWh]
/sys/class/power_supply/BAT1/energy_now = 15550 [mWh]
/sys/class/power_supply/BAT1/power_now = 4873 [mW]
/sys/class/power_supply/BAT1/status = Discharging

tpacpi-bat.BAT1.startThreshold = 70 [%]
tpacpi-bat.BAT1.stopThreshold = 80 [%]
tpacpi-bat.BAT1.forceDischarge = 0

powertop:
The battery reports a discharge rate of 4.82 W
battery_stat2.png

turbostat:
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 Pkg%pc8 Pkg%pc9 Pk%pc10 PkgWatt CorWatt GFXWatt
- - 30 1.70 1773 2595 0 4.18 1.33 0.21 92.58 34 34 15.43 2.08 70.65 0.00 0.00 0.00 0.00 0.56 0.12 0.01
0 0 32 1.84 1765 2595 0 2.58 0.64 0.37 94.57 33 34 15.43 2.08 70.65 0.00 0.00 0.00 0.00 0.56 0.12 0.01
0 1 20 1.07 1913 2595 0 3.36
1 2 38 2.17 1741 2595 0 5.16 2.01 0.06 90.60 34
1 3 30 1.70 1734 2595 0 5.62

dd:
dd if=/dev/zero of=/tmp/testfile1 bs=32M count=128
dd: error writing ‘/tmp/testfile1’: No space left on device
105+0 records in
104+0 records out
3496284160 bytes (3,5 GB) copied, 5,99871 s, 583 MB/s

nvidia:
cat /proc/acpi/bbswitch
0000:04:00.0 OFF
 
Zuletzt bearbeitet:
Aber dein dd schreibt gar nicht auf die SSD. /tmp liegt meistens im RAM, nach 3,5 GB war der Speicher voll (klingt nach 8 GB RAM, weil vom tmpfs meistens die Hälfte genutzt wird) und knappe 600 MB/s schafft die SSD bestimmt nicht. Zudem läuft das dd bestimmt auch noch gepuffert, sodass die Zahl für einen Datenträger eh nutzlos wäre.
 
Aber dein dd schreibt gar nicht auf die SSD. /tmp liegt meistens im RAM, nach 3,5 GB war der Speicher voll (klingt nach 8 GB RAM, weil vom tmpfs meistens die Hälfte genutzt wird) und knappe 600 MB/s schafft die SSD bestimmt nicht. Zudem läuft das dd bestimmt auch noch gepuffert, sodass die Zahl für einen Datenträger eh nutzlos wäre.

/tmp ist bei mir kein eigener mount point, sondern Teil vom rootfs, welches etwas über 3GB Platz frei hatte.
df -h /tmp
Filesystem Size Used Avail Use% Mounted on
/dev/disk/by-uuid/974f88a5-aa41-4e27-8489-ac26c6007de6 26G 21G 3,5G 86% /
Die Ergebnisse von dd sind bei mir in /tmp und im homedir gleich bis auf die CPU Nutzung, weil im homedir noch der cryptlayer dazwischen ist. Du hast sicher recht was das buffering angeht, aber trotzdem zeigt dd zumindest bei Dateien in GB Größe die deutlichen Einbrüche der liteon SSD im "nopc6" Akkubetrieb. Dieses Verhalten ist auch im X200 so, wo die liteon SSD jetzt eingesetzt wird.
BTW:
Klonen von über 400 GB von/auf die liteon SSD lief via SATA im Desktop und via SATA und USB 3.0 im T450s mit circa 80-100MB/s. Zwischen der Crucial und der Samsung waren es wie erwartet über 200MB/s. Die typischen Windows Benchmarks meistert die liteon aber ohne Probleme. Vielleicht ist da langsamer NAND, aber ein großer Puffer drin.
 
Zuletzt bearbeitet:
Soeben eine Samsung 850 EVO 500GB eingebaut. Mit der identischen (1:1 kopierten) Installation komme ich jetzt auf 3.5W im Idle bei min. Helligkeit. PERFEKT.

@valworx: Danke für den Tip! :thumbup:
 
Entschuldigt, dass ich diesen Thread hier rauskrame - aber wenn ich Euch richtig lese, dann ist der zu Grunde liegende Fehler bei der SSD und nicht bei Konfiguration von Wifi, Graphik oder CPU?

Ich habe nämlich ein W550s und erreiche mit diesem nie C6 (pc6) mit Batterie, was bei mittlerer Displayhelligkeit einem Verbrauch von mehr als 10W im Idle enstpricht. Ich habe hier noch eine Samsung 830 Pro drin (von 2012 und ohne Update). Kernel ist 4.5.0.
 
Entschuldigt, dass ich diesen Thread hier rauskrame - aber wenn ich Euch richtig lese, dann ist der zu Grunde liegende Fehler bei der SSD und nicht bei Konfiguration von Wifi, Graphik oder CPU?

Ich habe nämlich ein W550s und erreiche mit diesem nie C6 (pc6) mit Batterie, was bei mittlerer Displayhelligkeit einem Verbrauch von mehr als 10W im Idle enstpricht. Ich habe hier noch eine Samsung 830 Pro drin (von 2012 und ohne Update). Kernel ist 4.5.0.

Ich erreiche den pc6 nur mit deaktivierter nvidia grafik:

cat /proc/acpi/bbswitch
0000:04:00.0 OFF
 
Ich erreiche den pc6 nur mit deaktivierter nvidia grafik:

cat /proc/acpi/bbswitch
0000:04:00.0 OFF

Danke für den Hinweis; hat mich daran erinnert, dass ich mich vor Monaten mal um bbswitch bzw. bumlebee kümmern wollte. bbswitch konnte die Karte nicht ausschalten. Ein Update auf die development Version (dev Branch auf github via Archlinux AUR PKGBUILD) hat das Problem dann gelöst.

Jetzt ist mein Verbrauch zwischen 7 und 8 Watt und der Prozessor kommt in den pc6 rein. Yay! :)
 
  • ok1.de
  • ok2.de
  • thinkstore24.de
  • Preiswerte-IT - Gebrauchte Lenovo Notebooks kaufen

Werbung

Zurück
Oben