Die Neuerungen von Linux 4.12
Seite 5: Informationen zur Dateisystemnutzung erhalten
Unter anderem für Datenintegritätstests ist der neue I/O-Control (Ioctl) "GETFSMAP" gedacht, den Ext4 und XFS jetzt beherrschen (1, 2, XFS, Ext, Man-Page). Programme können darüber beim Dateisystem erfragen, wie es seine Blöcke nutzt. Darüber lassen sich leere Bereiche erkennen, aber auch abklären, ob dort Meta- oder Nutzdaten liegen. Ferner lässt sich feststellen, welche Nutzdaten zu welchen Dateien gehören.
Mit diesen Informationen können Programme beispielsweise eine Liste aller für Nutzdaten verwendeten Blöcke erhalten, um diese dann sequenziell auszulesen und dabei auf Lesefehler zu prüfen. Sollten welche auftreten, kann das Check-Programm ausgeben, welche Dateien davon betroffen sind. Das ist eine der Funktionen, auf die das noch in Entwicklung befindliche Online-Scrubbing-Tool zurückgreifen soll, das XFS-Dateisysteme im Betrieb auf Fehler untersucht. Das gelingt aber nur mit den seit Linux 4.8 unterstützten Dateisystemstrukturen, die seit Linux 4.9 Funktionen wie COW (Copy-on-Write) ermöglichen.
RAID-Fixes für Btrfs & Optimierungen bei Ext4
(Bild: Btrfs-Wiki )
Einige der Änderungen an Btrfs beseitigen bekannte Probleme und Funktionslücken bei der Dateisystem-eigenen Implementation von RAID 5 und 6. Das ist eine der Funktionen von Btrfs, die nach wie vor als instabil gilt.
Zwischen den Umbauten am Ext4-Dateisystem verstecken sich einige, die die Performance großer Dateisystemen verbessern sollen. Auch Workloads mit verteilten Schreiboperationen (random write) sollen zulegen.
Einige Umbauten gab es auch beim CIFS-Dateisystem, mit dem sich Dateifreigaben von macOS, Samba oder Windows einbinden lassen. Darunter finden sich einige, die asynchrones I/O beschleunigen (u. a. 1, 2, 3). Die Kernel-Entwickler haben ferner eine Inkompatibilität beseitigt, durch die sich SMB-Freigaben von macOS manchmal nicht mounten ließen.
Details zu weiteren Neuerungen rund um Datenspeicherung und Dateisysteme finden sich in den Kommentaren zu den Commits, die die wesentlichsten Neuerungen bei Ceph, Fuse, F2FS, Fsnotify, GFS2, Libnvdimm (1, 2, MMC, MTD, NFS, NFSd, Orangefs, Overlayfs, Pstore, SCSI, SCSI Target, UBIFS und XFS beschreiben.
Busy poll & CAN in Containern
Geringe Latenzen verspricht der neue Syscall epoll_wait()
. Anwendungen können über ihn einen Socket ständig immer wieder abfragen ("busy poll"). Sie bekommen eingehende Pakete so möglichst schnell unter ihre Fittiche, belasten den Prozessor aber auch stärker.
Der Namespace-Support im Subsystem für CAN (Controller Area Network) ermöglicht eine Isolation von Anwendungen, die über den unter anderem in Autos und der Robotik verwendeten Bus kommunizieren (u. a. 1, 2). Letztlich kann man dadurch jetzt CAN-Anwendungen mit Hilfe von Container-Techniken wie LXC und Docker abgeschottet betreiben. Ein weiterer Baustein dazu ist der neue Treiber für virtuelle CAN-Tunnel (vxcan). Er kann lokal virtuelle Verbindungen schaffen, über die Anwendungen per CAN miteinander kommunizieren können, die in unterschiedlichen Namespaces laufen; das Ganze ermöglicht somit Ähnliches wie die virtuellen Ethernet-Devices von Typ "veth". Mit Hilfe dieser Verbesserungen lassen sich beispielsweise komplette ROS Robotik-Entwicklungsumgebung samt CAN-Support als Container-Images an Entwickler verteilen; außerdem lässt sich dank des Namespace-Supports nun regeln, welche Anwendungen auf den CAN-Bus schreiben dürfen.
Netzwerktreiber
Der E1000e-Treiber unterstützt bereits jetzt die zur i219-Familie gehörende Netzwerkchips, die sich mit Intel-Prozessoren der Cannon-Lake-Generation einsetzen lassen (u. a. 1, 2); Letztere soll "Skylake" beerbt und unter anderem in Core-i-CPUs der 8000er-Serie stecken, die Intel noch dieses Jahr einführen will.
Unter den neuen Netzwerktreibern ist einer für einen IP-Code der Enterprise Ethernet-Reihe von DesignWare, der Dwc-Xlgmac heißt und Übertragungen mit 25G, 40G, 50G und 100G beherrscht. Ebenfalls neu ist der Treiber MT7530, der einen 7-ports Gigabit Ethernet Switch von Mediatek unterstützt.
Der Treiber für Intels WLAN-Chips unterstützt jetzt eine neuere Revision (den "B-Step") von WLAN-Chips der 9000er-Serie. Ferner erhielt Iwlwifi einige Grundlagen zum Support des Nachfolgers der 9000er-Serie (u. a. 1, 2, 3, 4).
Weitere Neuerungen rund um den Netzwerksupport von Linux listen die Kommentare der wichtigsten Git-Merges aus diesem Kernel-Bereich (Net: 1, 2, 3; RDMA: 1, 2). Darunter sind etwa eine Hardware Offloading API für IPSEC. Ferner gab es wieder zahlreiche Verbesserungen am Code des BPF (u. a. 1, 2, 3). Diese Virtual Machine ist aus dem Berkeley Packet Filter (BPF) hervorgegangen und wurde anfangs eBPF (Enhanced BPF) genannt. Mittlerweile verzichten die Entwickler oft auf das "e" und sprechen schlicht nur noch vom BPF – das soll dabei aber keine Abkürzung mehr für Berkeley Packet Filter sein, denn mit ihm hat der BPF aktueller Kernel-Versionen nur noch wenig gemein.