Die Neuerungen von Linux 2.6.34

Seite 5: Linux 2.6.34: Power-Management

Inhaltsverzeichnis

Nachdem Torvalds die "Asynchronous Suspend And Resume"-Patches bei 2.6.33 noch zurückgewiesen hatte, nahm er deren überarbeite Fassung für 2.6.34 ohne Murren auf. Durch sie legt der Kernel bestimmte Systemkomponenten parallel schlafen oder weckt sie simultan; das soll die Einschlaf- und Aufwachzeiten bei der Nutzung des Bereitschaftsmodus (ACPI S3/Suspend-to-RAM) und des Ruhezustands (Hibernate/Suspend-to-Disk) reduzieren.

Bislang bot der Kernel nur rudimentäre Unterstützung zur Nutzung der Stromspartechniken von I/O-Geräten zur Laufzeit. Die entsprechenden Funktionen wurden bei Linux 2.6.34 erheblich überarbeitet und erweitert (u. a. 1, 2, 3); zudem setzt der für solche Aufgaben schon länger im USB-Subsystem enthaltene Code nun auf neuen generischen Funktionen auf. Die neuen Stromsparfunktionen sind in der Standardeinstellung aber deaktiviert.

Mehr Infos

Informationsquelle Quellcodeverwaltung

Viele der Links im Artikel verweisen auf den für die Neuerung jeweils relevanten Commit im Web-Frontend des von Linus Torvalds mit Git verwalteten Linux-Quellcodezweigs auf kernel.org. Dort finden sich viele weitere Informationen zur jeweiligen Änderungen – speziell der Commit-Kommentar im oberen Bereich der vom Git-Web-Frontend angezeigten Webseite ist häufig eine überaus ergiebige Quelle für weitere Informationen, denn dort erklärt der Autor des Patches normalerweise die Hintergründe der Änderungen und deren (erhoffte) Auswirkung. Gelegentlich finden sich dort auch Benchmark-Ergebnisse oder Verweise auf weitere Informationsquellen.

Auf den Commit-Kommentar folgt eine Auflistung der durch den Patch veränderten Dateien. Über den hinter dem Dateinamen zu findenden Link "patch" kann man sich anzeigen lassen, wie der Commit die jeweilige Datei verändert; "history" zeigt frühere Änderungen der Datei an. Weiter unten finden sich alle im Rahmen des Commits durchgeführten Änderungen im Unified-Diff-Format. Dabei handelt es sich größtenteils um Modifikationen am Quellcode des Linux-Kernels – es sind aber nicht selten auch Anpassungen an der Dokumentation oder an Kommentaren im Code darunter, daher finden dort auch Anwender ohne Programmierkenntnisse viele hilfreiche Informationen.

  • Wie bereits bei den vorangegangenen Kernel-Versionen gab es auch für 2.6.34 Dutzende Verbesserungen am Tracing Code und den Performance Events, mit denen sich die Vorgänge im Kernel zu Laufzeit analysieren lassen. Die "jump optimization" (1, 2, 3, Dokumentation) etwa soll Kprobes-Code signifikant beschleunigen. Außerdem bietet der Perf-Code nun eine Python-Scripting-Engine (1, Dokumentation).
  • In verschiedenen Subsystemen flossen Treiber oder Erweiterungen für die bislang nur als Cougar Point bekannten und Anfang nächsten Jahres erwarteten Mainboard-Chipsätze von Intel ein.
  • Der AHCI-Treiber beherrscht nun FIS-based switching – eine von manchen externen Festplatten-Gehäusen mit SATA-Port-Multiplier genutzte Technik, mit deren Hilfe sich über eine SATA-Verbindung mehrere Festplatten ansprechen lassen.
  • Als eine der wichtigsten Änderungen in Block-Layer hebt dessen Maintainer Jens Axboe in seinem Haupt-Git-Pull-Request Performance-Verbesserungen am CFQ-I/O-Scheduler hervor.
  • Durch eine Änderung an Lkdtm lässt sich nun gezielt ein Kernel-Crash erzeugen – etwa um das Verhalten bei einem Systemabsturz zu simulieren.
  • Integriert wurde auch eine Änderung, die das kürzlich bekannt gewordenen Performance-Problem bei AMD jüngst eingeführten Prozessoren mit Turbo Core beseitigt; volle Unterstützung für diese den Prozessor bei Teilauslastung hochtaktende Technik soll in 2.6.35 einfließen.