Kernel-Log: Höherer Stromverbrauch durch BIOS-Bugs
Kernel seit 2.6.38 verbrauchen mehr Strom, weil sie in bestimmten Situationen die Stromspartechnik ASPM deaktivieren. Neue Stable- und Longterm-Kernel bringen Korrekturen; einer hängt aber auffällig hinterher.
Im April [1] hatte die Webseite Phoronix darüber berichtet, einige Systeme würden mit den Linux-Versionen 2.6.35 und 2.6.38 mehr Leistung aufnehmen als mit den jeweiligen Vorgängern. In Test will Phoronix jetzt die Ursache [2] für den mit 2.6.38 steigenden Stromverbrauch gefunden haben.
Schuld sei die in 2.6.38 integrierte Änderung "PCI: Disable ASPM if BIOS asks us to [3]". Sie soll laut Commit-Kommentar [4] Probleme bei Systemen beseitigen, bei denen das BIOS die PCI-Express-Stromspartechnik ASPM (Active State Power Management [5]) bei manchen PCIe-Chips aktiviert, in seiner von Linux konsultierten FADT (Fixed ACPI Description Table) jedoch erklärt, die ASPM nicht zu unterstützen. Durch die Änderung beachtet der Kernel die Angabe in den ACPI-Tabellen und versucht die Stromspartechnik bei allen PCIe-Geräten zu deaktivieren, sofern es das BIOS denn erlaubt.
Offensichtlich gibt es jedoch viele Systeme, bei denen das BIOS über die FADT falsche Informationen zur ASPM-Unterstützung liefert. Bei vielen von ihnen sind ab Kernel 2.6.38 daher alle PCIe-Lanes zur Kommunikation mit PCIe-Chips dauerhaft voll aktiv, was zu der höheren Leistungsaufnahme führt, die Phoronix und eine Reihe von Anwendern beobachteten. Über den Kernel-Parameter "pcie_aspm=force" kann man den Kernel anweisen, ASPM zwangsweise zu aktivieren. Das kann aber zu Systemabstürzen führen, wie etwa Red Hat in der RHEL-6-Dokumentation erläutert [6]. Auf einem Thinkpad-Notebook von Phoronix sank die Leistungsaufnahme durch das Einschalten von ASPM von 24,8 auf 21,6 Watt und damit auf das Niveau beim Betrieb mit Kernel 2.6.37.
Windows scheint solche Situationen anders zu handhaben – es ist unklar, ob es anderswo nach Informationen zur ASPM-Unterstützung schaut oder ASPM einfach nutzt, sofern das BIOS die Kontrolle freigibt. Letztendlich deutet vieles auf eine Problematik hin, die den Reboot- und UEFI-Problemen von Linux ähnelt, denen jüngst etwas Aufmerksamkeit zugekommen ist (1 [7], 2 [8]): Linux spricht die Hardware anders an als Windows, wodurch Linux ungetestete Pfade betritt und Probleme auftreten, weil die Hardware-Hersteller meist nur mit Windows getestet haben. Da hilft es auch nichts, das Linux die Dinge teilweise sogar korrekter angeht als Windows: Recht spezifikationskonformes Arbeiten gepaart mit unsauberen ACPI-Tabellen in den Notebook-BIOSen war schon eine der Ursachen für viele der ACPI-Probleme, die Linux-Anwender vor Jahren häufig plagten. Besser wurde es, seit sich der ACPI-Interpreter von Linux mehr wie der von Windows verhält und auch die selben Fehler macht ("Bug compatibility").
Wie die Kernel-Hacker [9] das Problem angehen, dürften die nächsten Tage und Wochen zeigen; vermutlich wird frühestens Linux 3.1 eine Korrektur enthalten, damit ASPM wieder bei mehr Systemen aktiv ist. Phoronix ist zudem noch auf der Suche nach der Änderung, die ab Linux-Kernel 2.6.35 zu einer höheren Leistungsaufnahme führt.
Kernel-Versionsstatus
Greg Kroah-Hartman hat den Stable-Kernel 2.6.39.2 [10] sowie die Longterm-Kernel 2.6.32.42 [11] und 2.6.33.15 [12] veröffentlicht. Die Freigabe-Mails zu den beiden erstgenannten Versionen enthalten den üblichen Hinweis, der nachdrücklich zum Update auffordert, ohne klar zustellen, ob auch Sicherheitslücken beseitigt wurden.
Paul Gortmaker hat wenig später den Longterm-Kernel 2.6.34.10 freigegeben [13], der über 240 Änderungen bringt. Anders als Greg Kroah-Hartman erwähnt er in der Freigabe-Mail die Korrektur von Sicherheitslücken. Zwischen 2.6.34.9 und 2.6.34.10 vergingen aber über zehn Wochen, in denen Kroah-Hartman vier neue Longterm-Kernel der 32er-Serie veröffentlicht hat. Es ist recht wahrscheinlich, dass diese 32er-Versionen bereits einige Sicherheitslücken korrigiert haben, die in der 34er-Serie erst jetzt beseitigt wurden.
Kernel-Log-Staccato
Kernel-Log-Staccato
Kernel
- Einige der wichtigsten Entwickler des Netzwerk-Subsystems haben sich kürzlich zur "Netconf 2011 [14]" getroffen. Über die Programm-Seite finden sich einige der dort gezeigten Präsentationsfolien; Ben Hutchings hat die aus seiner Sicht wichtigsten Punkte der Vorträge und Diskussionen in einer Mail [15] zusammengefasst.
- Anlässlich des bald anstehenden 20. Geburtstag von Linux hat Linux.com eine Galerie mit Bildern [16] von Linus Torvalds veröffentlicht; einige von ihnen stammen aus den Anfangstagen von Linux.
- Dateisystem-Experte Eric Sandeen hat in einem Blog-Eintrag [17] die Größenänderungen am Dateisystemcode von Btrfs, Ext4 und XFS analysiert. XFS sei das einzige, dessen Codeumfang schrumpft, dabei habe es in letzter Zeit einige Verbesserungen an dem Dateisystem gegeben, dessen Code größer ist als der von Btrfs und Ext4.
Unterstützung für Grafikhardware
- Der in Linux-Next enthaltene Entwicklerzweig DRM-Next [18] enthält seit einigen Tagen eine Firmware (u. a. 1 [19]) für GeForce-Grafikchips der Fermi-Generation. Sie dürfte in Linux 3.1 einziehen und macht die Beschleunigungsfunktionen der GeForce-Modellreihen 400 und 500 nutzbar; anfangs gelang das nur mit der Firmware [20] der proprietären Nvidia-Treiber.
- Die bisher "Xorg hosted mode" (kurz: "hosted") genannte Unterstützung zum Betrieb von X als Wayland Client heißt nun [21] xwayland. Der die Umbenennung vorantreibende Entwickler hat zudem einen einen "xf86-video-wlshm" ("wayland shared memory") genannten und als "fake" eingestuften Grafiktreiber geschrieben, um diese bislang auf Intel-Grafikchips angewiesene Betriebsart einfacher testen zu können.
- Der neuste Eintrag [22] des Blogs "The Irregular Radeon Development Companion" beschäftigt sich mit der Einrichtung eines Systemd-Unit, welche die Stromsparunterstützung des KMS-Radeon-Treibers aktiviert.
- Bereits Mitte des Monats und kurz nach dem letzten regulären Kernel-Log hat AMD die Version 11.6 seiner proprietären und als Catalyst oder Fglrx bekannten Grafiktreiber für Linux [23] freigegeben. Die Release Notes [24] liefern einige Hinweise zur Installation – Informationen zu den Neuerungen dieser Version fehlen allerdings.
Kernel-Umland ("Plumbing layer"), Userland-Treiber, Entwicklertools, ...
- Lucas Meneghel Rodrigues hat Version 0.13.0 des Autotest-Frameworks veröffentlicht [25], dass sich unter anderem zum automatischen Testen von Kerneln eignet.
- Mit der Version 003 [26] der Usbutils funktioniert nun auch die Kompression der Datendatei.
- James Hunt hat Upstart 1.3 freigegeben [27], das einige der bereits bei Ubuntu 11.04 integrierten Funktionen bringt.
LKML-Diskussionen
- Stefan Assmann hat überarbeitete "Badram"-Patches zur Diskussion gestellt [28]. Damit ausgestatteten Kerneln kann man bekanntermaßen kaputte Bereiche des Arbeitsspeichers über Kernel-Parameter mitteilen, damit die Kernel sie nicht nutzen. Google-Mitarbeiter Andrew Morton verglich diese [29] mit einer umfassendere Lösung, die Google einsetzt – die wurde aber noch nicht zur Integration an den Kernel aufbereitet [30], was aber auf der ToDo-List sei.
- Jonas Bonn arbeitet darauf hin [31], Unterstützung für die OpenRISC-1000-Architektur [32] in den Kernel zu integrieren – einer im Rahmen von Opencores.org [33] entwickelten Open-Source-Prozessorarchitektur mit RISC-Kernen.
- In der Freigabe-Mail zur zweiten Version [34] des "Native Linux KVM Tool" hat dessen Hauptentwickler Pekka Enberg einige Benchmark-Ergebnisse erwähnt, laut denen die Qemu-KVM-Alternative beim Lesen und Schreiben von QCOW2-Images schneller arbeitete als Qemu-Kvm. In einem LWN.net-Kommentar [35] sagte Enberg, man sollte den Ergebnissen nicht zu viel Bedeutung beimessen. Später stellte sich dann raus, dass ein Fehler [36] im Messaufbau am schlechten Abschneiden von Qemu-Kvm schuld war.
- Theodore 'tytso' Ts'o beginnt [37] mit den konkreten Planungen für den Kernel Summit 2011 [38], der im Oktober in Prag stattfinden soll.
Weitere Hintergründe und Informationen rund um Entwicklungen im Linux-Kernel und dessen Umfeld finden sich in den vorangegangenen Kernel-Logs [39] auf heise open [40] und in c't [41]. Neue Ausgaben des Kernel-Logs [42] werden auf den Identi.ca [43]- und Twitter [44]-Konten "@kernellog" erwähnt; die englischen, bei den Kollegen von "The H [45]" erscheinenden Übersetzungen auf den Identi.ca [46]- und Twitter [47]-Konten "@kernellog2". Gelegentlich zwitschert der Autor des Kernel-Logs unabhängig davon über einige Kernel-Log-Themen bei Identi.ca [48] und Twitter [49] als "@kernellogauthor". (thl [50]). (thl [51])
URL dieses Artikels:
https://www.heise.de/-1268394
Links in diesem Artikel:
[1] https://www.heise.de/news/Neuere-Linux-Kernel-verschwenden-in-bestimmten-Situationen-Strom-1233374.html
[2] http://www.phoronix.com/scan.php?page=article&item=linux_2638_aspm&num=1
[3] http://git.kernel.org/linus/2f671e2dbff6eb5ef4e2600adbec550c13b8fe72
[4] http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=2f671e2dbff6eb5ef4e2600adbec550c13b8fe72
[5] http://en.wikipedia.org/wiki/Active_State_Power_Management
[6] http://docs.redhat.com/docs/en-US/Red_Hat_Enterprise_Linux/6/html/Power_Management_Guide/ASPM.html
[7] https://www.heise.de/hintergrund/Kernel-Log-Schwierigkeiten-mit-Hardware-und-dem-3-0-1253730.html
[8] https://www.heise.de/hintergrund/Kernel-Log-Llano-Unterstuetzung-Union-Dateisysteme-1260191.html
[9] http://www.heise.de/glossar/entry/Kernel-Hacker-397919.html
[10] http://thread.gmane.org/gmane.linux.kernel/1159513
[11] http://thread.gmane.org/gmane.linux.kernel/1159526
[12] http://thread.gmane.org/gmane.linux.kernel.stable/13766
[13] http://thread.gmane.org/gmane.linux.kernel.stable/13816
[14] http://vger.kernel.org/netconf2011.html
[15] http://thread.gmane.org/gmane.linux.network/199229
[16] http://www.linux.com/news/galleries/1-linus-torvalds-in-pictures
[17] http://sandeen.net/wordpress/?p=532
[18] http://git.kernel.org/?p=linux/kernel/git/airlied/drm-2.6.git;a=shortlog;h=drm-next
[19] http://git.kernel.org/?p=linux/kernel/git/airlied/drm-2.6.git;a=commit;h=0411de854898a2402cf4bd915bed7ec9a6b76f9a
[20] http://nouveau.freedesktop.org/wiki/NVC0_Firmware
[21] http://lists.freedesktop.org/archives/wayland-devel/2011-June/001163.htmlhei%C3%9Ft%20nun
[22] http://tirdc.livejournal.com/28471.html
[23] http://support.amd.com
[24] http://www2.ati.com/relnotes/Catalyst_11.6_Linux_Installer.pdf
[25] http://thread.gmane.org/gmane.linux.kernel.autotest/3671
[26] http://thread.gmane.org/gmane.linux.usb.general/48158
[27] http://thread.gmane.org/gmane.linux.kernel/1155296
[28] http://thread.gmane.org/gmane.linux.kernel.mm/65317
[29] http://thread.gmane.org/gmane.linux.kernel.mm/65317/focus%3D65351
[30] http://thread.gmane.org/gmane.linux.kernel.mm/65317/focus%3D65354
[31] http://thread.gmane.org/gmane.linux.kernel/1157086
[32] http://opencores.org/openrisc,architecture
[33] http://opencores.org/
[34] https://www.heise.de/news/Linux-3-1-mit-neuem-KVM-Tool-1261295.html
[35] http://lwn.net/Articles/447825/
[36] http://thread.gmane.org/gmane.linux.kernel/1155280/focus%3D1156062
[37] http://thread.gmane.org/gmane.linux.kernel/1160235
[38] http://ksummit2011.kernel.org/
[39] http://www.heise.de/open/kernel-log-3007.html
[40] http://www.heise.de/open/
[41] http://www.heise.de/suche/?q=Kernel-Log&search_submit=Suchen&rm=search&channel=ct&mediatype=ct_2
[42] http://www.heise.de/glossar/entry/Kernel-Log-397909.html
[43] http://identi.ca/kernellog
[44] http://twitter.com/kernellog
[45] http://www.h-online.com
[46] http://identi.ca/kernellog2
[47] http://twitter.com/kernellog2
[48] http://identi.ca/kernellogauthor
[49] http://twitter.com/kernellogauthor
[50] mailto:thl@ct.de
[51] mailto:thl@ct.de
Copyright © 2011 Heise Medien