Höher und weiter – Die Neuerungen von Linux 2.6.28

Seite 3: Notebooks und SSDs

Inhaltsverzeichnis
Entwicklungslinien des Linux-Kernels Die Kernel-Hacker entwickeln den Linux-Kernel im Rahmen der 2.6-Serie stetig weiter. Dabei scheuen sie auch nicht vor umfangreichen Änderungen zurück. Es wird daher auf absehbare Zeit keinen 2.7-Entwicklerzweig geben, aus dem irgendwann eine Linux-Version 2.8.0 oder 3.0.0 hervorgeht, wie Linux 2.6.0 aus dem 2.5-Entwicklerzweig entstand; stattdessen pflegen die Entwickler mehrere Kernel-Serien für verschiedene Anwenderkreise parallel. Die Hauptentwicklungslinie stellen die Versionen mit drei durch Punkte getrennten Nummern (2.6.x, also etwa 2.6.26) dar. [...] Parallel zur Hauptentwicklung pflegen die Verwalter der Stable-Kernel-Serie die beiden jeweils neusten Versionen der Hauptentwicklungslinie weiter und kennzeichnen die Überarbeitungen durch eine zusätzliche Zahl (2.6.x.y, beispielsweise 2.6.24.10 oder 2.6.25.8). (...mehr...)

Durch die neuen Range-Hrtimers kann der Kernel beim Anlegen einer später auszuführenden Aufgabe nun statt eines festen Ausführungszeitpunks ein Zeitfenster als Erledigungstermin festlegen. Dadurch kann der Kernel Aufgaben, die problemlos einige Sekundenbruchteile früher oder später ausgeführt werden können, bündeln und in einem Rutsch ausführen (siehe auch LWN.net-Artikel). Das verlängert sich im Idealfall nicht nur die Zeit deutlich, die die CPU in stromsparenden Schlafzuständen verbleibt, sondern erlaubt auch den Wechsel in tiefere und sparsamere CPU-Schlafmodi.

Einige von den Range-Hrtimers unabhängige Änderungen am CPUFreq-Framework (etwa 1, 2) sollen die Leistungsaufnahme bei unbelasteter CPU weiter reduzieren. Neu sind ferner einige umfangreiche Verbesserungen für den Vblank-Mechanismus der Direct Rendering Infrastructure (DRI). Durch sie sollen im 3D-Modus arbeitenden AMD- und Intel-Grafikchips nur noch Interrupts auslösen, wenn ein Programm auch tatsächlich auf ein Vblank-Event wartet, um störendes Flackern bei der 3D-Darstellung zu vermeiden. All das soll die Akku-Laufzeiten von Linux-Notebooks verlängern.

Falls die in manchen Notebooks verbauten Beschleunigungssensoren eine drohenden Erschütterungen erwarten lassen, kann eine (möglichst mit hoher Priorität laufende) Userspace-Anwendung über die neue "Disk Shock Protection" nun Festplatten anweisen, ihre Schreib/Leseköpfe schnellstmöglich zu parken, um die Gefahr von Festplattenschäden zu verringern (Dokumentation, Libata- und IDE-Unterstützung). IBM hat eine solche "Active Protection System (APS)" genannte Technik bereits vor Jahren bei mit Windows laufenden Thinkpad-Notebooks eingeführt; mit einigen Thinkpad-spezifischen Treibern sowie Vorläufern des jetzt aufgenommenen Codes ließ sich aber auch schon mit älteren Kernel ein vergleichbarer Schutz realisieren. Auch HP hat mit "HP Mobile Data Protection System 3D" und "HP 3D driveguard" schon eine ähnliche Technik impementiert – für einige der dabei genutzten Beschleunigungssensoren kam mit 2.6.28 ein passender Treiber hinzu.

Nachdem Intel Anfang Oktober die ACPI Integrated Graphics Device OpRegion Specification unter einer Creative-Commons-Attribution-Lizenz veröffentlicht hat, stieß nun Unterstützung für eben diese Technik zum Kernel hinzu. Das ermöglicht bei neueren Notebooks mit Intel-Grafikchipsatz die Einstellung der Display-Helligkeit über eben diese ACPI-Methode, was die Entwickler erfolgreich auf einem Thinkpad T61 und einem HP 2510p getestet haben; auch das Abfangen und Weiterleiten von Events beim Betätigen der Funktionstasten zum Umschalten des Displays-Ausgangs soll der neue Code verbessern. Durch eine weitere Änderung nutzt der Kernel zur Einstellung der Hintergrundbeleuchtung von Notebook-Displays in Zukunft nun bevorzugt ACPI. Die Treiber für Net- und Notebooks von Asus (1, 2,), Compal, Fujitsu, MSI, Sony und IBM/Lenovo kümmern sich hingegen nur noch um die Helligkeitsregelung, wenn es per ACPI nicht funktioniert; bisher kamen sich diese zwei Verfahren gelegentlich ins Gehege. Zu den genannten und zumeist Hersteller-spezifischen Notebook-Treibern gesellt sich mit panasonic-laptop ein weiterer. Er ermöglicht bei Notebooks aus der Panasonic-Serie Let's Note die Einstellung der Display-Helligkeit und macht einige zuvor brachliegende Funktionstasten nutzbar.

Das Libata-Subsystem kann dem übergeordneten Block-Layer nun mitteilen, ob es sich bei einem Datenträger um eine SSD (Solid-state drive) handelt. Die zum Block Layer gehörenden IO-Scheduler CFQ oder AS sind anhand dieser Informationen in der Lage, den Datenfluss besser zu steuern – statt wie sonst üblich einige Sekundenbruchteile auf weitere Daten zu warten, um den Einfluss der Zugriffszeiten zum Positionieren der Schreib-/Leseköpfe zu minimieren, können die IO-Scheduler bei SSDs so gleich die nächste Aufgabe angehen und so den Gesamtdurchsatz durch Eliminierung der sonst Vorteile bringenden Wartepausen steigern. Über die neue Discard-Funktion (LWN.net-Artikel) sind Dateisysteme nun zudem in der Lage, dem Block-Layer mitzuteilen, wenn bestimmte Bereiche (Blöcke) des Datenträgers nicht mehr in Benutzung sind – auch das ist für SSDs wichtig, damit etwa deren Wear-Leveling-Einheit weiß, welche Blöcke nicht mehr belegt sind.

Die IO CPU Affinity soll auf Mehrkern- oder Multiprozessor-Systemen den Datendurchsatz steigern und die CPU-Belastung reduzieren. Dazu versucht der Block-Layer, die Daten mit dem Prozessor weiterzuverarbeiten, mit dem zuvor die Datenanforderung erfolgt ist, da die Daten bei der CPU vielfach noch im Cache sind. Zudem unterstützt der Block-Layer nun Größenänderungen von Block-Devices zur Laufzeit und bietet Xen-Gästen über den Treiber blkfront Zugriff auf mehr als 16 virtuelle Datenträger. Ein ganzer Schwung kleiner Block-Layer-Patches von Libata-Entwickler Tejun Heo räumt zudem die Beschränkung auf maximal 15 Festplattenpartition bei über Libata-Treibern angesteuerten Datenträgern aus.