Die Neuerungen von Linux 4.15

Linux-Kernel 4.15

Trends & News | Kernel-Log

Das im Januar erwartete Linux 4.15 geht ein altes SATA-Problem neu an, um die Akkulaufzeit zu verlängern. Bei XFS geht die Grundrenovierung weiter, durch die das Dateisystem mittelfristig besser mit Btrfs und ZFS konkurrieren soll.

Der Linux-Kernel 4.15 geht ein altbekanntes Problem neu an, durch das mit SATA-Datenträgern bestückte Linux-PCs oft unnötig Strom verbrauchen. Fedora will den neuen Ansatz bald nutzen, um die Akkulaufzeit von Notebooks deutlich zu verlängern.

XFS bekommt eine vorerst noch nicht nutzbare Funktion, um das Dateisystem parallel zur normalen Verwendung zu prüfen und nötigenfalls auch zu reparieren. Bei Ext4 funktioniert eine Größenänderung zur Laufzeit nun auch mit Dateisystemen, die Bigalloc verwenden. F2FS bekommt Quota-Support, der offenbar bei Android zum Einsatz kommen soll.

Das Kernel-Log

Die Artikelserie "Die Neuerungen von Linux" beschreibt regelmäßig die Änderungen neuer Linux-Versionen:

Die folgenden Absätze liefern Details zu diesen und weiteren Neuerungen bei Storage-Support und Dateisystemen, die der am 15. oder 22. Januar erwartete Kernel bringt. Für 4.15 vorgenommene Änderungen an Grafiktreibern erläutert die zweite Seite dieses Artikels. Dieser wird in den nächsten Wochen noch schrittweise erweitert, um auch Neuerungen aus weiteren Bereichen zu beschreiben.

Linux 4.15 enthält eine kleine Änderung an den ATA-Treibern, mit der ein Entwickler die Akkulaufzeit Millionen moderner Notebooks signifikant verlängern will. Wie stark, hängt vom Notebook ab – bei besseren Notebooks dürfte im Leerlauf aber schnell eine halbe oder ganze Stunde mehr drin sein. Der Ansatz verspricht darüber hinaus auch, die Leerlauf-Leistungsaufnahme von PCs zu reduzieren. Es sind aber noch Feldtests nötig, bis Linux-Distributionen dieses Sparpotenzial automatisch nutzen.

Das Ganze betrifft die meisten der in den letzten sechs bis sieben Jahren verkauften PCs und Notebooks, die einen Intel-Prozessor mit per SATA angesprochenen Datenträgern kombinieren. Standardmäßig nutzt Linux bei diesen kein AHCI Link Power Management (ALPM), obwohl das den Stromverbrauch von SATA-Verbindungen bei Untätigkeit signifikant reduzieren kann. Aber nicht nur das: Wenn alle SATA-Links richtig per ALPM ruhen, können Prozessoren seit der Haswell-Generation (u. a. im Core-i-4000 verbaut) bei Untätigkeit teilweise deutlich tiefer schlafen gehen, weil sich der zugehörige SATA-Controller nicht für Aktivitäten bereithalten muss. Das reduziert die Leerlauf-Leistungsaufnahme abermals, sodass das Aktivieren von ALPM letztlich rund ein oder manchmal sogar zwei Watt spart. Bei sparsamen Notebooks senkt das die Leistungsaufnahme im Leerlauf manchmal um 20 oder 30 Prozent.

git.kernel.org
ALPM spart auf vielen Notebooks rund 1 Watt, was die Akkulaufzeit signifikant steigern kann. (Bild:  git.kernel.org)

Diese Problematik ist seit vielen Jahren bekannt und war auch mehrfach Thema in c't. Damit vertraute Anwender aktivieren das von Linux schon länger unterstützte ALPM daher manuell. Manche lassen das Software wie Powertop, TLP und Laptop Mode Tools erledigen, andere stellen über die Dateien /sys/class/scsi_host/host*/link_power_management_policy von max_performance auf die ALPM aktivierenden Modi min_power oder medium_power um.

Von den großen Linux-Distributionen setzt aber keine solch eine Einstellung automatisch, weil beide Modi laut vereinzelten Berichten zu Abstürzen oder Datenverlust führen können. Als Ursache stehen Hard- oder Firmware-Probleme ganz oben auf der Verdächtigenliste, weil beide Modi das ALPM etwas anders konfigurieren als der Windows-Treiber für die Intel Rapid Storage Technology (IRST). Ein Aspekt dabei ist die Konfiguration des zu ALPM gehörenden Device Initiated Power Management (DIPM). Nach mehreren Jahren hat ein Entwickler das Problem im Frühjahr 2015 mit Patches anzugehen versucht, durch die einer der bisher setzbaren Modi die Hardware samt DIPM so konfigurierte, wie es der IRST-Treiber macht. Aber auch damit gab es Berichte über Datenverlust und Abstürze. Das Vorhaben verlief daraufhin im Sande.

Ein an Fedora arbeitender Red-Hat-Entwickler hat die Patches jetzt aufgegriffen und so überarbeitet, dass der Kernel nun mit med_power_with_dipm einen vierten Modus versteht. Dieser konfiguriert die Hardware mit genau den ALPM-Parametern, die auch der IRST-Treiber setzt. Nachdem der Entwickler und einige Fedora-Mitstreiter die neue Betriebsart auf einigen Notebooks erfolgreich ausprobiert haben, flossen die DPIM-Patches jetzt in Linux 4.15 ein.

fedoraproject.org
Fedora 28 soll ALPM und einige andere Stromspartechniken standardmäßig aktivieren, die Linux-Distributionen bislang meist ungenutzt lassen. (Bild:  fedoraproject.org)

ALPM liegt allerdings nach wie vor standardmäßig brach, denn man muss den neuen Modus explizit aktivieren. Das derzeit entwickelte Fedora 28 soll ihn aber von Haus aus nutzen, damit es das Sparpotenzial automatisch ausschöpft, ohne dass Anwender in die Konfiguration eingreifen müssen. Genau wie bei den anderen ALPM-Sparmodi kann dadurch die SATA-Performance minimal sinken, denn der Wiederaufbau einer SATA-Verbindung kostet einige Millisekunden; in der Praxis ist der Performance-Verlust aber so gering, dass er nicht spürbar und typischerweise vernachlässigbar ist.

Fedora 28 soll übrigens auch einige andere Stromsparfunktionen standardmäßig scharf schalten, die der Kernel und die meisten Linux-Distributionen derzeit links liegen lassen. Wenn keine größeren Probleme bei diesen Feldtests auftauchen, dürften andere Distributionen vermutlich nachziehen.

Umfangreiche Umbauten am XFS-Code sollen das Dateisystem nicht nur schneller, sondern auch fit für die Anforderungen von heute und morgen machen. Unter den Änderungen sind etwa größere Anpassungen bei der internen Handhabung von Extents. Diese versprechen Wartezeiten und Probleme beim Anfordern von Arbeitsspeicher zu reduzieren, die derzeit manchmal beim Zugriff auf stark fragmentierte Dateien auftreten(u. a. 1).

Ein Blog-Eintrag eines XFS-Entwickler erläutert einige Hintergründe zur nächsten Generalüberholung von XFS:
Ein Blog-Eintrag eines XFS-Entwicklers erläutert einige Hintergründe zur nächsten Generalüberholung des Dateisystems. (Bild:  blogs.oracle.com)

Erst langfristig bedeutsamer ist ein umfangreicher Satz von Änderungen, durch den sich Dateisystemchecks in Zukunft im Betrieb durchführen lassen sollen (u. a. 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12). Dieses Online-Fsck ist aber vorerst inaktiv, denn es ist noch unvollständig: Bei den kommenden Linux-Versionen sollen noch weitere Funktionen folgen, um Dateisysteme prüfen und reparieren zu können, ohne sie aushängen zu müssen. Dieses Feature wird auch "Online Scrub and Repair" genannt und ist eine der Funktionen, die auf den größeren Umbauten aufbauen, die bei Linux 4.8 und 4.9 ihren Anfang nahmen und etwa Support für Copy-on-write (CoW) nachrüsten.

Das in der Vergangenheit schon mehrfach grundlegend überarbeitete XFS bekommt mit diesen Features letztlich die nächste Generalüberholung. Dadurch soll XFS besser mit modernen Dateisystemen wie Btrfs und ZFS konkurrieren können. XFS wird unter anderem bei Red Hat Enterprise Linux (RHEL) standardmäßig eingesetzt; bei Suse Linux Enterprise (SLE) ist es Standard für Datenpartitionen. Die Online-Fsck-Änderungen wurden indes maßgeblich von einem Oracle-Mitarbeiter entwickelt.

Offenbar vornehmlich für den Einsatz bei Android wurde der Quota-Support im Flash-Friendly File System (F2FS) programmiert (u. a. 1, 2). Zu den weiteren Änderungen am für simple Flash-Datenträger ausgelegten F2FS gehört eine flexiblere Funktion zum Speichern erweiterter Attribute (EAs/Xattr).

Das Ext4-Dateisystem unterstützt die Größenänderung zur Laufzeit (Online Resizing) jetzt auch mit Dateisystemen, die Bigalloc verwenden. Durch diese bei Linux 3.2 eingeführten "Big Allocation Blocks" kann Ext4 die zum Speichern von Daten verwendeten 4K-Blöcke zu bis zu einem MByte großen Einheiten bündeln ("clustern"), um Verwaltungs-Overhead beim Speichern großer Dateien zu reduzieren und die Performance zu verbessern. Weitere Änderungen am Standard-Dateisystem vieler Linux-Distributionen nennt der Kommentar mit den wichtigsten Ext4-Änderungen für 4.15.

Die Kernel-Dokumentation beschreibt jetzt den Einsatz der Dateisystem-eigenen und via fscrypt nutzbaren Verschlüsselungsfunktion, die Ext4 und F2FS bieten.

Man kann beim Mounten eines mit Zlib komprimierenden Btrfs-Volumes jetzt spezifizieren, mit welchem Kompressionsgrad es die Dateien packen soll (u. a. 1, 2). Durch einen Schwung neuer Heuristiken soll das Dateisystem die Kompressionstauglichkeit der gerade verarbeiteten Daten besser vorhersagen können und so besser entscheiden, ob ein Komprimieren überhaupt lohnt (u a. 1, 2, 3, 4). Ein Commit-Kommentar nennt noch einige andere für 4.15 vorgenommenen Btrfs-Änderungen. Darunter ein neues Interface, das für Userspace-Werkzeuge zum Defragmentieren oder Deduplizieren gedacht ist (u. a. 1, 2). Eine Änderung am Readahead-Code verspricht die Leistung von Btrfs in bestimmten Situationen zu verbessern.

Durch eine Grundrenovierung mit zahlreichen Verbesserungen unterstützt das verteilte Dateisystem AFS (Andrew File System) nun unter anderem Network Namespace, das für den Einsatz in Containern wichtig ist. Das lange eher stiefmütterlich behandelte Distributed File System nimmt mit diesen Änderungen wieder an Fahrt auf: Die für 4.15 integrierten Patches enthalten mehr Änderungen als die 2014 und 2015 an AFS durchgeführten Umbauten.

Nicolas Pitre hat die Pflege des seit mindestens 2013 verwaisten Compressed ROM File System (cramfs) übernommen, das ähnlich wie Squasfs ein komprimiertes Dateisystem im Arbeitsspeicher bereithält. Laut dem im Embedded-Linux-Bereich aktiven Entwickler eignet sich Cramfs aber besser für Systeme mit wenig Arbeitsspeicher. Er hat nicht nur die Pflege übernommen, sondern auch einige neue Features eingebracht (1, 2, 3).

Weitere Änderungen rund um Dateisystem-Features nennen Kommentare zu den wichtigsten Merge Commits von DLM, Ecryptfs, Fscrypt, Fsnotify, GLF2, NFS, NFSd, Overlayfs und Quota.

Beim SSD-Caching-Framework Bcache gab es einige Detailänderung, um Fehler zu beseitigen und die Performance zu steigern (u. a. 1, 2). Das ist Michael Lyle zu verdanken, der Pflege und Weiterentwicklung des eine Weile verwaisten Bcache-Codes übernommen hat (1, 2). Er hat auch gleich den Fehler behoben, der beim Bcache-Einsatz unter Linux 4.14 und 4.14.1 zu Datenverlust führt.

Der Kernel kann einen NVMe-Datenträger jetzt über mehrere Controller ansprechen. Das steigert neben der Performance auch die Ausfallsicherheit. Zu verdanken ist das dem Multipath Support im NVMe-Treiber. Effizienten Datenaustausch zwischen Prozessor bzw. Hauptspeicher und NVMe-Controller verspricht der ebenfalls neue Support für SGL (Scatter Gather Lists) im NVMe-PCI-Treiber.

Der bei Linux 4.1 integrierte Cluster-Support im via Mdadm konfigurierten MD-Subsystem gilt jetzt nicht mehr als experimentell (u. a. 1). Außerdem unterstützt der MD-RAID-Cluster-Code neben dem RAID-Level 1 jetzt auch RAID 10 – dieser Modus scheint aber noch nicht voll durchgetestet zu sein, denn er trägt den Statuts "limited support". Ein Merge-Commit-Kommentar nennt einige weitere Änderungen am typischerweise für Software-RAIDs genutzten Subsystem.

Zwischen den Patches am von Logical Device Manager verwendeten Device Mapper (DM) stecke unter anderem Support für DAX im Log-Target.

Unter den Patches an Ceph und RBD (Rados Block Device) war eine Änderung an einer Standardvorgabe, durch die das Storage-Framework jetzt automatisch rund 240 Images per Host unterstützt.

Allein am Block-Layer gab es wieder Dutzende wichtiger Neuerungen.
Allein am Block-Layer gab es wieder Dutzende wichtige Neuerungen. (Bild:  git.kernel.org)

Die Kommentare zu den zwei Commits mit den wesentlichen Änderungen am Block-Layer (1, 2) nennen noch weitere Änderungen an der Storage-Support-Infrastruktur von Linux. Darunter verschiedene Performance-Verbesserungen für Blk-Mq (u. a. 1, 2, 3) und ein ganzer Schwung kleiner Änderungen am Writeback-Code, die ein viel diskutiertes Latenzproblem beheben. Außerdem haben die Entwickler die Unterstützung für den Laptop Mode gestärkt (u. a. 1, 2) und die Cgroup-Integration im Loop-Support verbessert. Auch beim Code des bei Linux 4.12 hinzugestoßenen BFQ-I/O-Scheduler gab es nochmal allerlei Feintuning (u. a. 1, 2).

Unter den Änderungen an der Infrastruktur für NV-DIMMs waren die bei LWN.net näher erläuterten Flags MAP_SYNC und MAP_SHARED_VALIDATE. Mit diesen Kennzeichnungen für mmap() erhalten Anwendungsprogramme mehr Kontrolle über das Cache-Flushing, mit denen sie konsistentes Schreiben von Meta- und Nutzdaten bei guter Performance besser gewährleisten können.

Einige weitere Änderungen rund um Storage-Support finden sich in den Pull-Requests für die Subsysteme Libata, MMC, MTD, SCSI, SCSI Target.

Schrittweise aktualisierter Text zu Linux 4.15

Am 27. November hat Linus Torvalds die erste Vorabversion von Linux 4.15 freigegeben. Damit hat er die "Merge Window" genannte Phase des Entwicklungszyklus abgeschlossen, in der er alle wesentlichen Umbauten für eine neue Kernel-Version vornimmt; größere, erwähnenswerte Änderungen passieren danach nur noch in Ausnahmefällen.

Das Kernel-Log kann daher schon jetzt die Neuerungen der am 15. oder 22. Januar erwarteten Kernel-Version beschreiben. Das erfolgt wie immer schrittweise. Dieser Text wird daher zwischen Erstpublikation und der Fertigstellung des neuen Kernels mehrfach erweitert, um nach und nach die wesentlichen Änderungen von Linux 4.14 zu beschreiben.

Im neuesten Text-Update kamen die Abschnitte auf der ersten Artikelseite hinzu. Ältere Textpassagen finden Sie auf den folgenden Seiten. Details zur Versionshistorie des Artikels finden Sie am Artikelende.

Kommentare

Anzeige