Für das Stromfresser-Problem im Linux-Kernel scheint eine Lösung gefunden zu sein

2 Kommentare Autor: Jürgen (jdo)

TuxAls im März 2011 Linux-Kernel 2.6.38 ausgegeben wurde, brachte dieser ein unschönes Energie-Problem mit sich. Viele Notebooks brauchten plötzlich spürbar mehr Strom. Nun scheint es endlich eine vernünftige Lösung dafür zu geben. Ein Patch lässt den Kernel nun besser entscheiden, ob PCI Express ASPM (Active State Power management) benutzt werden soll oder nicht.

Active State Power management ist Teil der PCI-Express-Spezifikation. Allerdings kann nicht jede Hardware gut damit umgehen. Die Änderung im kernel 2.6.38 deaktivierte ASPM, außer das BIOS meldete Unterstützung dafür. Allerdings stellte sich heraus, dass eine große Anzahl an Geräten die ASPM unterstützen dies eben nicht meldeten. Als Folge liefen viele Geräte ohne ASPM, obwohl sie das eigentlich könnten. Die Lösung einiger Motherboard-Hersteller war: Benutzt halt einfach Windows.

ASPM lässt sich beim Start des Kernels mit der Option pcie_aspm=force erzwingen. Das ist natürlich ein Workaround und keine Dauerlösung. Microsoft Windows kann in der Tat besser erkennen, wann ASPM genutzt werden soll und wann nicht. Viele Monde sind vergangen und in Sachen Linux und ASPM hat sich weder etwas im Kernel 2.6.39, noch 3.0 oder 3.1 etwas getan. Nun scheint es aber doch eine Lösung zu geben.

Red Hats Matthew Garrett hat einen Patch eingereicht, der mit pci: Rework ASPM disable code ist. Dieser Flicken lässt den Kernel nun anders entscheiden, ob die Software PCI-E-ASPM-Unterstützung aktivieren oder deaktivieren soll. Bisher dachte man, dass ASPM nicht unterstützt ist, außer das BIOS sagt anders. Dieses Denken sei möglicherweise falsch gewesen, sagt der Entwickler. Garrett beschwert sich aber auch über die schlechte Dokumentation. Somit könne man nicht 100 Prozent sagen, ob das nun der richtige Weg ist.

Auf einem Thinkpad X220 konnte er allerdings mit seinem neuen Patch eine Stromersparnis von 5 Watt messen. Der Patch ist ungefähr 60 Zeilen lang. Das Merge-Fenster für Linux-Kernel 3.2 ist bereits geschlossen. Somit wird man den Patch wohl frühestens im Kernel 3.3 sehen. Die Ankündigung und den Patch finden Sie auf lkml.org.




 Alle Kommentare als Feed abonnieren

2 Kommentare zu “Für das Stromfresser-Problem im Linux-Kernel scheint eine Lösung gefunden zu sein”

  1. philleb says:

    Hallo, weißt du inwieweit dieser Fehler im Linux Kernel 3.0.0-14 behoben ist?
    lg

    • jdo says:

      Soweit ich weiß - nicht behoben. Der Fix für die Strom-Regression wird voraussichtlich erst in Linux-Kernel 3.3 kommen. Ist blöd, weil Ubuntu 12.04 LTS Kernel 3.2 einsetzen wird. Es gibt aber Gerüchte für einen Backport, der zumindest in Ubuntu einfließen soll.