Linux 3.13: Neuer Paketfilter, doppelt so viele CPUs

Linus Torvalds hat Linux 3.13 mit einer einwöchigen Verzögerung freigegeben(öffnet im neuen Fenster) . Als Grund gab Torvalds seine Reisen an. Allerdings habe es auch noch einige Fehler gegeben, die mit der letzten Testphase noch ausgeräumt wurden. Viele Änderungen gab es im Bereich Netzwerk, etwa mit Nftables. So heißt der neue Paketfilter, der langfristig Iptables ersetzen soll und in Linux 3.13 sein Debüt hat. Nutzer von Grafikkarten von AMD können sich über wichtige Änderungen freuen, die die 3D-Ausgabe beschleunigen. Da sich x86-Systeme verbreiten, die mehr als 4.096 CPUs nutzen, wurde Linux 3.13 so angepasst, dass doppelt so viele Kerne genutzt werden können – insgesamt jetzt 8.192.
Mehr Leistung für AMD-Karten
Mit der vorletzten Vorabversion von Linux 3.13 wurde noch ein Fehler beseitigt, der für eine deutlich verminderte 3D-Leistung des Radeon-Treibers verantwortlich war. Statt alle Recheneinheiten moderner GPUs zu nutzen, wurde nur die erste Shader Engine verwendet. Das sorgte zwar für einen ruhig laufenden Lüfter, aber auch unter anderem für miserable Framerate-Werte in 3D-Spielen. Mit dem Patch stiegen die Bildraten in dem auf der Unigene Engine basierenden Spiel Sanctuary von 15 auf 90 fps. Und der Lüfter werde deutlich lauter, schreibt Entwickler Marek Olšák(öffnet im neuen Fenster) , der den Patch eingereicht hat. Der Kernel 3.13 nutzt standardmäßig die Stromspartechnik Dynamic Power Management, die bereits in Linux 3.11 integriert wurde, aber noch über einen Kernelparameter explizit aktiviert werden musste. Für alle Radeon-GPUs bis auf die Sea-Island-Reihe und neuere Chipsätze entfällt jetzt der Parameter.
Der Kernel unterstützt jetzt auch das Abschalten eines zweiten Radeon-Grafikchips etwa in tragbaren Rechnern mit Hybridgrafik. Schließlich kann der freie Radeon-Treiber aktuelle Hawaii-Chips ansprechen und aktiviert standardmäßig Audio über HDMI samt Multi-Channel-Audio.
3D-Bildschirme mit Intel-Treibern
Noch gibt es die Broadwell-GPUs von Intel nicht, der Treiber in Linux 3.13 unterstützt die Grafikchips aber bereits, wenn auch nur im experimentellen Modus. Zudem lässt sich der Framebuffer-Modus deaktivieren, was für einen flackerfreien Systemstart sorgen soll. Vorerst rudimentär lassen sich 3D-Bildschirme über HDMI mit dem aktuellen Intel-Treiber nutzen(öffnet im neuen Fenster) .
Moderner Paketfilter
Nftables wird unter anderem als Framework für die kernelinterne Firewall dienen und langfristig die verschiedenen Netfilter ersetzen, darunter Iptables. Bislang muss für jedes Protokoll, etwa IPv4, IPv6, ARP oder Ethernet-Bridging, eigener Code eingesetzt werden, was ausgiebige Redundanz nach sich zieht. Als Bytecode-Interpreter soll Nftables einheitliche Filterregeln abarbeiten können. Zudem sollen die Fehlerberichte von Nftables detaillierter werden. Insgesamt soll das ABI für Nftables einfacher werden als etwa von Iptables. Der neue Netfilter verarbeitet Daten in einer kernelinternen virtuellen Maschine und soll deshalb schneller sein als einige seiner Vorgänger.
Schnellerer Verbindungsaufbau für HTTP
Damit eine Anwendung selbst bestimmen kann, mit welcher Geschwindigkeit Daten vom Kernel übertragen werden, gibt es jetzt die Socket-Option SO_MAX_PACING_RATE, die allerdings nur mit dem Fair Queue Packet Scheduler genutzt werden kann, den es seit Linux 3.12 gibt. Die neue Option lässt sich mit allen Protokollen verwenden und ist nicht auf das Transmission Control Protocol (TCP) beschränkt. Für das TCP nutzt Linux 3.13 nun standardmäßig die Erweiterung TCP Fast Open (TFO) , die von Google entwickelt wurde und den Verbindungsaufbau im HTTP beschleunigt. Die TFO-Unterstützung wurde für Clients bereits in Linux 3.6 und serverseitig in Linux 3.7 eingebaut. Die Browser Chrome und Chromium unterstützen TFO bereits, das von der Internet Engineering Task Force noch als Vorschlag eingestuft wird.
Ferner lässt sich mit Linux 3.13 das High-availability Seamless Redundancy Protokoll (HSR) für ausfallsichere Netzwerkverbindungen nutzen. Ipset speichert IPv4- und IPv6-Adressen als Paar und die Virtual Tunnel Interfaces in Ipsec lassen sich ebenfalls mit IPv6 nutzen.
Mit der Einführung des Secure Element IO API lassen sich über NFC sichere Verbindungen aufbauen, etwa für den Zahlungsverkehr. Außerdem nutzt Linux 3.13 NFC-A, mit dem sich Übertragungen mit bis zu 106 KBit/s bewerkstelligen lassen.
Linux 3.13 kann besser mit SSDs
Der bisherige Block Layer, die Schnittstelle zwischen Datenträgertreiber und dem Linux-Kernel, wurde in Linux 2.6.10 umgesetzt und ist damit etwas weniger als neun Jahre alt. Damals wurden mit Lese- und Schreibzugriffen (IOPs) von Hunderten von Sekunden gerechnet, heutzutage sind es bereits mehrere Tausend und bald werden es Millionen sein. Deshalb war eine Neuimplementierung dringend nötig, an der bereits seit einiger Zeit gearbeitet wird.
Mit mehreren Warteschleifen (Queues) soll der Zugriff auf Datenträger beschleunigt werden, was besonders bei SSDs für einen deutlichen Geschwindigkeitszuwachs sorgen soll. Damit Multiqueue Block Layer sinnvoll genutzt werden kann, müssen allerdings auch die Treiber angepasst werden. Das soll laut Kernel-Entwickler Johnathan Corbet zwar recht einfach sein, es wird aber wohl bis Ende 2014 dauern, bis alle Nutzer die neue Zwischenschicht gebrauchen können.
Schneller dekomprimieren
Zwei Änderungen sollen das bei vielen Linux-Distributionen auf ihren Livemedien genutzte Kompressionsverfahren Squashfs beschleunigen. Zum einen landen entpackte Daten direkt im Page Cache des Arbeitsspeichers. Das beschleunige den Datendurchsatz von 13,7 auf 67,6 MBytes/s, schreiben die Entwickler. Außerdem werden künftig mehrere Threads für die Dekompression verwendet. Bei vier Threads sollen Daten statt wie bisher in 99 jetzt in 9 Sekunden dekomprimiert werden.
Der für Raid-Systeme verwendete Device-Mapper reicht künftig Daten direkt an SSDs weiter (Passthrough-Modus) statt über den Zwischenspeicher. Das soll für einen schnelleren Systemstart sorgen, da Dm-cache bereits auf SSDs zugreifen kann, während die Datenintegrität im Cache noch geprüft wird.
Unterstützung für ARMs Big.Little
Für die Big.Little-Architektur bringt Linux 3.13 eine erste Unterstützung. Damit kann der Kernel auch die Prozessoren in ARMs neuer Multi-CPU-Architektur steuern. Der normale Linux-Scheduler wäre mit der Kombination aus einem energiesparenden Cortex-A7 und einem leistungsfähigen Cortex-A15 nicht zu gebrauchen, da die beiden CPUs keine gleichwertige Leistung bieten. Deshalb werden für den Linux-Kernel nur die leistungsstarken CPUs sichtbar gemacht. Sollte der Energiesparmodus benötigt werden, werden die kleineren Kerne aktiviert und dabei sämtliche Interrupts transferiert. Dann arbeiten die kleineren Kerne an der Stelle weiter, an der die Übergabe erfolgte und die leistungsstarken Kerne werden deaktiviert. Als Vorgabe für den Code dient der von ARM, der unter einer BSD-Lizenz freigegeben wurde. Für das Umschalten ist der Cpufreq-Treiber zuständig. Allerdings gilt der gegenwärtige Umschalter nur als Interimslösung. Später soll der Scheduler selbst diese Aufgabe übernehmen.
Der Source Code von Linux 3.13 lässt sich unter kernel.org(öffnet im neuen Fenster) herunterladen. Weitere Änderungen und eine ausführliche Liste aller neuen Treiber lassen sich unter kernelnewbies.org(öffnet im neuen Fenster) nachlesen.



