Aus Linux-Magazin 07/2017

Kernel 4.12: Integre Daten, USB-Typ-C-Support, erster Vega-Code

© Brian Jackson, 123RF

Im letzten legten Entwickler die Grundlage, im neuen Kernel 4.12 landen nun mit BFQ und dem Kyber I/O Scheduler zwei neue Terminplaner für Datenzugriffe auf Speichergeräte. Arbeit floss auch in den Vega-Support des AMDGPU-Treibers, zudem kommt Linux jetzt mit USB-Typ-C-Geräten klar.

Mit der Freigabe der ersten Vorabversion von Linux 4.12 schließt sich das Zeitfenster, in dem Entwickler Änderungen oder Neuerungen für die neue Kernelversion einreichen dürfen. Kernel-Chef Torvalds bezeichnete den aktuellen Entwicklungszyklus als recht ruhig.

Bessere Steuerung

Nachdem in den Kernel 4.11 die Unterstützung für mehrfache Warteschleifen (Multiqueuing, kurz »blk-mq«) einfloss, war auch die Voraussetzung für die Neulinge im aktuellen Kernel 4.12 geschaffen. Zwei neue Steuerprogramme nutzen die noch junge Infrastruktur: Budget Fair Queuing (BFQ, [1]) und der Kyber I/O Scheduler [2].

BFQ basiert auf Completely Fair Queuing (CFQ), blickt auf eine längere Entwicklungszeit zurück und musste – wie der Kernel – für die Aufnahme in Linux 4.12 Multiqueuing lernen. Die zugehörigen Algorithmen sorgen für eine ausgewogenere Nutzung insbesondere rotierender Datenträger. So gewähren sie beispielsweise jedem Prozess, der auf die Datenträger zugreift, ein begrenztes Ein- und Ausgabebudget, während CFQ feste Timeslots verteilt. Aber auch bei langsameren statischen Datenträgern soll BFQ lesende und schreibende Zugriffe beschleunigen.

Der Warteschlangen-Algorithmus ist aber recht komplex und erzeugt bei den Nutzern einen größeren Overhead. Für moderne, schnelle SSDs gibt es daher neuerdings das einfach gehaltene Steuerungsprogramm Kyber I/O Scheduler. Es teilt Ein- und Ausgaben zunächst einer von insgesamt zwei Warteschleifen zu, die es zugleich möglichst kurz hält.

Dazu prüft der Algorithmus, wie lange die jeweils angeforderten Operationen dauern. Die kurzen Warteschleifen sollen vor allem dafür sorgen, dass der Blocklayer Anfragen mit hoher Priorität möglichst schnell abarbeitet. Als einzige Stellschraube geben Admins dem Algorithmus eine Leseverzögerung als Zielvorgabe mit auf den Weg.

Wer also grob gesprochen auf einen möglichst effizienten Datendurchsatz setzt, dürfte den Kyber I/O Scheduler bevorzugen, wer sich hingegen schnellere Antwortzeiten auch von langsameren Datenträgern wünscht, sollte BFQ künftig im Auge behalten.

Insgesamt befindet sich die Multiqueue-Technologie aber noch in Entwicklung. Zum Beispiel fehlt diversen Blocklayer-Treibern der Support dafür. Wer die Technologie nutzen möchte, greift am besten weiterhin auf den etablierten CFQ-Scheduler zurück (Abbildung 1). Erste Benchmarks von Phoronix [3] legen zudem nahe, dass in der Praxis bislang keiner der Scheduler Datenzugriffe auf NVMe-SSDs beschleunigt.

Abbildung 1: Verschiedene Scheduler warten im Blocklayer auf ihren Einsatz, nun kommen zwei neue hinzu.

Abbildung 1: Verschiedene Scheduler warten im Blocklayer auf ihren Einsatz, nun kommen zwei neue hinzu.

Daten absichern

Der Device-Mapper-Treiber bekommt eine Erweiterung namens »dm_integrity«[4], um die Integrität verschlüsselter Daten auf Blockdevices zu überprüfen und längerfristig auch zu schützen (Data Integrity Protection, [5]). Die Erweiterung speichert auf Low-Level-Ebene des Blockdevice zusätzliche Metadaten, die verraten, ob sich die Integrität der Daten in einem Sektor verändert. Die Infrastruktur für die Metadaten bringt der Kernel schon mit, »dm_integrity« baut darauf auf.

Arbeiten beide zusammen, sorgen »dm_integrity« und »dm_crypt« im Team für eine authentifizierte Festplattenverschlüsselung. Der Linux-Kernel erkennt dann, wenn jemand modifizierte Daten auf dem verschlüsselte Device ablegen möchte, und wirft einen Eingabe-Ausgabe-Fehler.

Auch bei den Dateisystemen gibt es Bewegung. Der Treiber für Ext 4 soll die Leistung für sehr große Dateisysteme verbessern, zudem erhält er Unterstützung für den Funktionsaufruf »GETFSMAP«, der Details über Mappings von freiem Speicher für das Dateisystem liefert [6]. Diesen neuen Aufruf unterstützt auch XFS, das mit »xfs_spaceman«[7] zugleich ein Mapping-Tool für freien Speicherplatz in den aktuellen Kernel einführt, das auf »xfs_db« basiert und einen Fragmentierungsreport über freien Speicherplatz erzeugt.

Der Btr-FS-Treiber beseitigt weitere Probleme mit der eigenen Raid-5- und -6-Implementierung, die das Projekt aber weiterhin als instabil einstuft. Auch das MD-Subsystem für die Raid-Unterstützung des Kernels setzt einige Änderungen um. Die beschleunigen zum einen die Wiederherstellung von Raid-5-Systemen und steigern zum anderen die Leistung von Raid-5- und -6-Verbünden.

Nutzer von Rados Block Devices in Ceph profitieren von Verbesserungen an der Lock-Funktionalität, Ceph zügelt zudem seine Schreibfreudigkeit, falls der Platz auf dem Laufwerk ausgeht. Die Entwickler des Flash-Dateisystems F2FS verbessern die Performance beim Allozieren von Blöcken.

Aufgehübscht

Auch im Bereich der Input-Treiber gibt es Bewegung. Hier warten Updates für das »xpad«-Modul, das Kernelsupport für die Xbox-Controller liefert. Ein neuer »psxpad-spi«-Treiber erlaubt zudem die Verknüpfung zweier Playstation-1- und -2-Joypads über den SPI-Bus.

Die größten Änderungen stammen allerdings einmal mehr vom AMDGPU-Treiber. Der unterstützt jetzt mehrstufige Pagetables. Zudem stellt die neue Treiberversion Partially Resident Textures dar. Spiele-Engines stellen diese hochaufgelösten Texturen nur dann in Echtzeit dar, wenn sie tatsächlich im Blickfeld des Nutzers erscheinen. Das entlastet den Speicher der Grafikkarte. Zudem gibt es ersten Code für AMDs neue Vega-Architektur [8]. Der dient zunächst lediglich den Berechnungen auf den GPUs, weitergehender Code für die Ausgabe auf Bildschirmen fehlt noch und soll in späteren Kernelversionen folgen.

Der Treiber für Intels Ironlake-Grafikchips erhält Unterstützung für das Atomic Modesetting des Kernels. Dieser kann nun große Teile der Fensterverwaltung auf dieser Hardware übernehmen. Der Nouveau-Treiber spricht nun die 3-D-Beschleunigung auf den GTX-1000er-Grafikchips von Nvidia an. Dafür ist aber die signierte Firmware von Nvidia erforderlich, die mangels Reclocking noch langsam läuft.

Auch VMwares Grafiktreiber lernt Atomic Modesetting, was die Darstellung von Linux-Gastsystemen beschleunigt. Besitzer eines Raspberry Pi dürfen sich zudem über den erweiterten Grafiktreiber VC4 freuen, darüber hinaus geben die Minirechner jetzt auch Audio per HDMI aus. Nicht zuletzt kommt Linux 4.12 auch mit externen Grafikkarten zurecht, die über einen Thunderbolt-Anschluss laufen.

Mit mehr USB

Daneben bringt Linux 4.12 Unterstützung für USB Typ C in Form einer Portverwaltung mit, welche die korrekte Leistungsaufnahme der jeweiligen Anschlüsse (Sink und Source) bereitstellt. Dazu gibt es einen ersten Low-Level-Treiber für Intels Whiskey-Cove-USB-Chip. Noch nicht vollständig ist hingegen der Support für den Alternate-Modus von USB Typ C, der zum Beispiel den Anschluss von Bildschirmen über Displayport-Verbindungen erlaubt.

Mit dem ersten Release Candidate beginnt die in der Regel sechs Wochen andauernde Testphase für neue Linux-Kernel. Bleibt es bei diesem Rhythmus, erscheint der Linux-Kernel 4.12 Ende Juni. Die Vorabversion lässt sich auf Kernel.org [9] begutachten.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 2 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben