c't 4/2016
S. 38
Kernel-Log
Linux 4.5
Aufmacherbild

Kernel-Log

Linux 4.5: Raspi-Treiber und Android-Features

Die nächste große Überarbeitung des Linux-Kernels entlockt aktuellen Radeon-Grafikkarten mehr 3D-Performance. Das Ext4-Dateisystem lernt Projekt-Quotas, mit den man den Speicherplatz verzeichnisweise begrenzen kann.

Der Mitte März erwartete Linux-Kernel 4.5 enthält einige im Android-Umfeld entstandene Neuerungen. Darunter Änderungen am TCP-Code, durch die Anwendungen einen Video-Stream selbst dann ungestört wiedergeben können, wenn sich die Internet-Anbindung plötzlich grundlegend ändert – etwa weil Notebook oder Smartphone das heimische WLAN verlassen und auf eine Mobilfunk-Datenverbindung umschalten. Bislang merken Anwendungen das meist erst nach Minuten, wenn ihre TCP-Verbindungen in einen Timeout laufen. Das können Admins und Programme wie der NetworkManager in Zukunft vermeiden, indem sie den Kernel bei einem Verbindungswechsel auffordern, offene TCP-Connections zu schließen. Streaming-Anwendungen können so im Idealfall eine neue Verbindung aufbauen, bevor ihr Puffer leer läuft.

Speicher-Hack

Verbesserungen an der Adressverwürfelung ASLR (Address Space Layout Randomization) erschweren ein Ausnutzen von Sicherheitslücken. Die Änderungen stammen von Google-Entwicklern, die vorrechnen, Schadcode hätte die viel beachtete Stagefight-Lücke von Android bislang in durchschnittlich 10 Minuten ausnutzen können. Durch die Verbesserung soll es auf typischen Smartphone-Prozessoren jetzt im Mittel 45 Stunden dauern; der Angriff sei dadurch weniger praktikabel und falle Anwendern leichter auf.

3D-Performance für Radeon

AMDs neueste Grafikprozessoren können mit Linux 4.5 deutlich mehr 3D-Performance liefern. Das ist der neuen PowerPlay-Unterstützung für GPUs der Volcanic-Islands-Reihe zu verdanken, die beispielsweise auf den Radeon-R9-Modellen 285, 380, Nano und Fury sitzen. Durch PowerPlay kann der Treiber diese Grafikkarten erstmals in schnelle oder sparsame Betriebsmodi schalten.

Bislang laufen sie mit einem mittleren, beim Booten von der Firmware gesetzten Standardtakt, bei dem die GPUs ihr Leistungspotenzial nicht ausspielen können. In den jetzt erhältlichen Vorabversionen von Linux 4.5 muss man den PowerPlay-Support bei der Kernel-Konfiguration allerdings noch explizit einschalten. Ferner muss man ihn im Betrieb manuell aktivieren, indem man den Kernel mit dem Parameter amdgpu.powerplay=1 bootet. PowerPlay soll so erste Feldtests mit Linux absolvieren, bevor es in Zukunft automatisch genutzt werden soll.

Raspi-Unterstützung

Linux bringt ab Version 4.5 erstmals alles mit, was zum Start auf einem Raspberry Pi 2 erforderlich ist. Ferner wird der erst bei Linux 4.4 integrierte Grafiktreiber für die verschiedenen Raspi-Modelle um 3D-Unterstützung erweitert. Anwendungen können diese über den 3D-Treiber vc4 nutzen, der Mesa seit Version 11.1 beiliegt.

Dateibereiche klonen

Programme wie cp werden das Kopieren von Daten an Dateisysteme delegieren können. Manche Dateisysteme können dadurch große Datenmengen in Sekundenbruchteilen kopieren. So ist es etwa bei Btrfs, das eine ähnliche Funktion schon länger selbst bietet. Die für 4.5 integrierte Funktion wird hingegen universell über das Virtual File System (VFS) nutzbar sein und auch gleich im NFS-Server des Kernel unterstützt. Für dieses und andere Netzwerkdateisysteme ist das Ganze interessant, denn sie können Daten dadurch direkt auf dem Server kopieren, statt sie zum Client und wieder zurück übertragen zu müssen. Die neue Funktion soll auch ein Delegieren des Kopiervorgangs an Storage-Controller ermöglichen, die Daten selbst duplizieren können.

Ressourcen-Regelung

Der Kernel bietet jetzt eine grundlegend neue Infrastruktur zur Ressourcenverbrauch-Regelung über Control Groups (Cgroups). Sie beseitigt Probleme und Inkonsistenzen, die Entwickler und Admins bislang plagen, wenn sie den Verbrauch von Prozessorzeit, Arbeitsspeicher oder Storage- und Netzwerk-Ressourcen regeln. Die „Cgroups v2“ lassen sich parallel mit der alten, jetzt „cgroup legacy“ genannten Infrastruktur nutzen. Das ist auch nötig, denn über Cgroups v2 lassen sich vorerst nur Arbeitsspeicher- und Storage-Nutzung regeln. Systemd unterstützt die neue Infrastruktur bereits und versucht, lästige Details bei der Cgroup-Konfiguration vor Anwendern zu verbergen.

Bei knapp werdendem Arbeitsspeicher wird der Kernel den Speicher von Anwendungen freigeben und anders nutzen können, sofern ihn diese nur noch alloziert halten, um ihn später womöglich erneut zu nutzen. Windows und alle wichtigen BSD-Derivate unterstützen diese Funktion schon länger, für die Anwendungen den Speicher mit madvise(MADV_FREE) auszeichnen müssen. Facebook konnte so den Durchsatz um fünf Prozent steigern, als es eine ähnliche Kernel-Erweiterung vor Jahren in seinen Rechenzentren getestet hat.

Btrfs-Latenzproblem

Die Btrfs-Entwickler gehen mit 4.5 ein Problem an, das bei mehreren Terabyte großen Dateisystemen hin und wieder zu störenden Wartezeiten führt. Die Ursache liegt im Code für einen Cache, in dem Btrfs die Lage ungenutzter Speicherbereiche verzeichnet. Ein komplett neuer und vorerst optionaler Cache hat das Problem nicht und soll auch noch schneller arbeiten.

Das Ext4-Dateisystem wird neben User- und Gruppen-Quotas auch Projekt-Quotas unterstützen. Mit dieser in XFS schon länger vorhandenen Funktion lässt sich die Menge der Daten begrenzen, die einem „Projekt“ zugeordnete Dateien belegen dürfen. Das Feature lässt sich nutzen, um einzelne Verzeichnishierarchien zu limitieren.

Das Overlay-Dateisystem lernt die Mount-Option default_permissions, mit der sich auch Dateisysteme über eine per NFS angesprochene Freigabe schichten lassen. Unterstützung für SEEK_HOLE und SEEK_DATA in der Lseek-Implementation von Fuse versprechen, die Performance beim Zugriff auf Images virtueller Maschinen zu steigern, die in einem per Fuse eingehängten Dateisystem liegen.

Neuer Grafiktreiber

Zum Kernel stößt der Treiber Etnaviv für Vivante-Grafikkerne, die unter anderem in Freescale-Prozessoren der Serie i.MX6 stecken, die häufiger im Industrie- und Automotive-Bereich anzutreffen sind. Passende 2D- und 3D-Treiber zum Betrieb von X-Server und Wayland befinden sich in Entwicklung. Der so entstehende Treiberstack soll flexibler und besser wartbar werden als der proprietäre Treiber des Herstellers, der nur zu alten Kernel-Versionen passt.

Durch zahlreiche neue und verbesserte Treiber wird Linux 4.5 Intel-WLAN-Module 3168, 5165, 7265, 8165 und 9260 ansprechen können. Über den neuen Treiber Intel-Hid kann der Kernel Funktionstasten mancher Notebooks handhaben; darunter beispielsweise die WLAN-Ein/Aus-Taste der neuesten Ausführung des Dell XPS 13. Linux 4.5 verbessert zudem die Unterstützung für die Force-Feedback-Funktion des Game-Controllers der Xbox One. (thl@ct.de)