Linux 4.19: Mehr Netzwerk-Performance und Treiber für AVM FRITZ! AC 430 & 860 Update

Linux-Kernel 4.19

Trends & News | Kernel-Log

Das im Oktober erwartete Linux 4.19 verbessert die Netzwerk-Performance und unterstützt den neuen und schnelleren WLAN-Standard.

Der am 15. oder 22. Oktober erwartete Linux-Kernel 4.19 wird den nächsten WLAN-Standard IEEE 802.11ax unterstützen, der WLAN-Übertragungen deutlich beschleunigen soll. Die neue Linux-Version bringt auch gleich Treiber für einen Intel-Chip mit, der diesen Standard nutzt.

Zu den wichtigsten Neuerungen beim Netzwerk-Support zählen ferner Treiber für USB-WLAN-Chips von Mediatek, durch die Linux 4.19 die USB-WLAN-Sticks AVM FRITZ! AC 430 und 860 von Haus aus unterstützt. Eine längere Bündelung von Netzwerkpaketen verspricht, die Netzwerk-Performance zu verbessern – bislang macht sich allerdings nur ein Netzwerktreiber diesen Trick zunutze.

Linux 4.19 unterstützt den nächsten WLAN-Standard IEEE 802.11ax, der WLAN-Übertragungen um Faktor vier zu beschleunigen verspricht. Die entsprechenden Änderungen haben Intel-Entwickler beigesteuert. Die haben auch gleich ihren WLAN-Treiber Iwlwifi um Support für eine neue Serie von WLAN-Chips erweitert, die den schnelleren Funkstandard beherrscht. Diese Intel Wireless-AX 22560 genannte Modellreihe will Intel offenbar mittelfristig einführen, wann genau, ist allerdings nicht bekannt.

Durch die frühe Integration in Linux steigt die Chance, dass bei der Produkteinführung aktuelle Linux-Distributionen die WLAN-Chips von Haus aus unterstützen. Nachdem Intel jetzt die Grundlagen zur Unterstützung von 802.11ax im WLAN-Stack (mac80211) und dessen Konfigurationsinterface (cfg80211) gelegt hat, ist es für die Programmierer anderer WLAN-Treiber nun deutlich leichter, Support für den neuen WLAN-Standard zu implementieren.

Der neue Kernel unterstützt von Haus aus die USB-WLAN-Sticks AVM FRITZ! AC 430 und 860. Das ist den in Linux 4.19 integrierten Treibern für USB-WLAN-Chips von Mediatek zu verdanken, die zu den Reihen MT76x0U und MT76x2U zählen.

Die neuen neuen Mediatek-Treiber unterstützen USB-WLAN-Sticks verschiedener Hersteller.

Der Treiber ist unabhängig von Mediatek entstanden. Das Unternehmen hatte selbst quelloffene Treiber freigegeben, aber nicht aktiv gepflegt; sie funktionierten daher nur mit ausgewählten, schon bei der Veröffentlichung veralteten Linux-Kerneln. Daher ließen sie sich unter damals aktuellen Linux-Distributionen nicht oder nur mühsam einsetzen. Offenbar wiesen die Herstellertreiber zudem so viele Qualitätsmängel auf, dass die Programmierer lieber komplett neue Treiber geschrieben haben. Diese unterstützen nicht nur die genannten WLAN-Sticks von AVM, sondern auch von anderen Herstellern produzierte WLAN-Adapter, die der Quellcode der Treiber Mt76x0 und Mt76x2 nennt – darunter der XBox-One-Wireless-Adapter, der Devolo-Wifi-ac-Stick sowie Asus USB-AC50, USB-AC51, USB-AC54 & USB-AC55.

Der Kernel kann die gebündelt bei der Netzwerkhardware abgerufenen Netzwerkpakete jetzt länger zusammenhalten. Das verbessert die Netzwerk-Performance, weil es Overhead zu Beginn der Paketverarbeitung vermeidet und Prozessor-Caches besser greifen.

Die längere Bündelung von Netzwerkpaketen kann die Netzwerk-Performance in manchen Tests deutlich steigern. (Bild: git.kernel.org – 2d1b138505dc )

Der für das längere Zusammenhalten der Pakete zuständige Code stammt von einem Solarflare-Mitarbeiter, der den für Netzwerkchips des Unternehmens zuständigen Treiber Sfc auch gleich erweitert hat, damit der das Verfahren nutzt. Andere Treiber verwenden es bislang nicht, was sich frühestens mit der nächsten Kernel-Version ändern dürfte.

Die Idee hinter der Optimierung ist nicht neu, denn die hatte der Entwickler bereits 2016 vorgestellt. Damals fand der Ansatz aber keinen rechten Anklang bei den anderen Entwicklern. Das hat sich unter anderem durch die Maßnahmen gegen die Prozessor-Sicherheitslücke Spectre v2 geändert, denn die haben Overhead mit sich gebracht, den die längere Bündelung wieder reduziert. Details und Testergebnisse nennt ein Merge-Commit-Kommentar zum neuen Ansatz und der LWN.net-Artikel "Batch processing of network packets".

Kürzere Latenzen bei Internet-Anbindungen sowie eine bessere, störungsfreie Koexistenz von durchsatz- und latzenzsensitiven Übertragungen verspricht "Common Applications Kept Enhanced (CAKE)". Dabei handelt es sich um eine neue Queuing Discipline (Qdisc) zur Steuerung des Netzwerkverkehrs via tc (Traffic Control).

Der neue Netzwerk-Scheduler zielt auf Internet-Provider ab und soll Probleme auf Anwenderseite beseitigen, die durch zu starkes Puffern von Paketen in den Zwischenstationen entstehen; solche Probleme sind unter dem Oberbegriff "Bufferbloat" bekannt, gegen das eine Reihe von Entwicklern seit Jahren ankämpft. Details zum Ansatz des neuen Scheduling-Verfahrens finden sich in einem Commit-Kommentar zu CAKE, dem LWN.net-Artikel "Let them run CAKE", einer Webseite zu CAKE und einem Paper, das auch Testergebnisse nennt. Die Dokumentation zu CAKE findet sich im Entwicklerzweig von Iproute2, in dem die Version 4.19 vorbereitet wird und wie gewohnt kurz nach Freigabe des Kernels mit eben dieser Versionsnummer erscheinen dürfte.

Ebenfalls neu ist die Qdisc SKB Priority Queue (Skbprio): Dieser Scheduler soll bei der Abwehr von DoS-Attacken helfen, indem er Pakete geringerer Priorität fallen lässt, damit mehr der wichtigeren durchkommen. Die zugehörige Dokumentation steckt im Entwicklerzweig von Iproute2.

Der auf "Virtual Ethernet Tunnel" aufsetzende Treiber Veth hat XDP-Unterstützung erhalten, was Overhead beim Einsatz der Netzwerkschnellstraße reduziert und die Performance steigert. Laut dem Commit-Kommentar zum XDP-Support in Veth haben die Entwickler die Änderung vorgenommen, um Container besser zu vernetzen, XDP-Programme hintereinander zu hängen oder eine interne Netzwerkschnittstelle an eine XDP-Bridge einzuklinken.

Anwendungen können den Kernel nun über die neue setsockopt()-Option SO_TXTIME anweisen, die darüber verschickten Netzwerkpakete nicht möglichst zügig, sondern später innerhalb eines bestimmten Zeitfensters zu verschicken. Das ist vor allem für Realtime-Anwendungen gedacht, damit die den richtigen Moment zum Verschicken nicht mehr selbst anpassen brauchen. Außerdem müssen sie nicht mehr fürchten, dass ihre Pakete womöglich zu spät rausgehen, weil zufällig parallel eine andere Anwendung das Netzwerkinterface stark belastet. Details zum Ganzen finden sich im Merge Commit zu "Scheduled packet Transmission/ETF" und dem LWN.net-Artikel "Time-based packet transmission".

Der Kernel kann das Entschlüsseln von TLS (Transport Layer Security) jetzt an Netzwerkchips delegieren, die diese Aufgabe beherrschen. Das gelingt durch eine Erweiterung der Kernel-eigenen TLS-Unterstützung (Kernel TLS/KTLS), die bei Linux 4.13 eingeführt und jüngst bei 4.17 und 4.18 erweitert wurde. Der Netzwerktreiber muss die Hardware-seitige TLS-Entschlüsselung aber auch beherrschen, was bislang nur bei Mlx5 der Fall ist.

Eine Reihe weiterer Neuerungen nennt der Kommentar des Git-Merges, der den Hauptschwung der Änderungen am Netzwerkstack enthalten hat. Darunter ist etwa noch eine Backup-Port-Funktion im Bridge-Code oder das "Virtual XFRM Interface", das Verbindungen tunnelt und dabei einige Schwierigkeiten von anderen Tunnel-Ansätzen wie Virtual Tunnel Interfaces (VTI) vermeiden soll; XFRM soll etwa zuverlässig sicherstellen, dass über die virtuelle Netzwerkschnittstelle geroutete Pakete zuverlässig fallengelassen werden, falls es mit dem Tunnel irgendwo hakt.

Schrittweise aktualisierter Text zu Linux 4.19

Support für den neuen WLAN-Standard IEEE 802.11ax und Treiber die USB-WLAN-Sticks AVM FRITZ! AC 430 und 860 sind Highlights des am 15. oder 22. Oktober erwarteten Linux 4.19. Außerdem wird der neue Kernel auch 32-Bit-x86-Systeme vor der Anfang Januar bekanntgewordenen Prozessor-Sicherheitslücke Meltdown schützen. Neu dabei ist auch ein Treiber für den Grafikchip einiger mit Windows ausgelieferten ARM-Notebooks, die bei Linus Torvalds die Hoffnung auf ein alltagstaugliches und halbwegs leistungsstarkes ARM-Notebook geweckt haben. Linux 4.19 wird zudem ein Longterm-Kernel sein, der mindestens zwei Jahre gepflegt wird.

Diese und weitere Neuerungen von Linux 4.19 sind seit Ende August absehbar, als Linus Torvalds die erste Vorabversion dieser Kernel-Version freigegeben hat. 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 erfolgen danach nur in Ausnahmefällen; es passiert auch nur äußerst selten, dass die Entwickler eine umfangreichere, im Merge Window integrierte Änderung vor der Fertigstellung deaktivieren oder gar entfernen.

Das Kernel-Log der c't kann daher bereits jetzt die Neuerungen der nächsten Linux-Version in einem detaillierten Text beschreiben. Er wird zwischen Erstpublikation und der Fertigstellung des neuen Kernels mehrfach erweitert, um die wesentlichen Änderungen der verschiedenen Kernel-Bereiche schrittweise in leichter handhabbaren Mengen zu beschreiben.

Der Newsticker von heise online und der Twitter-Account @kernellog erwähnt größere Erweiterungen des Textes zum neuen Linux-Kernel. Diese finden Sie immer auf der ersten Artikelseite; ältere Textpassagen finden Sie auf den folgenden Seiten. Details zur Versionshistorie des Artikels liefert das Changelog am Artikelende.

Kommentare

Anzeige