Die Neuerungen von Linux 3.14

Seite 2: Treiber, Netzwerk, Infrastruktur

Inhaltsverzeichnis

Zum Kernel stößt ein Krypto-Treiber für einen Cryptographic Coprocessor, an dem AMD zu arbeiten scheint (u. a. 1, 2). Die Eingabegerätetreiber unterstützen nun auch Dual Action Gamepads von Logitech sowie Force-Feedback beim Dualshock 4 von Sony. Neu dabei ist auch Unterstützung für den Realtek RTL8153, den einige Gigabit-Netzwerkadapter mit USB-3.0-Schnittstelle einsetzen.

In den Staging-Zweig zog ein Treiber für den WLAN-Chip Realtek RTL8821 ein, der in einer nicht näher spezifizierten Steam Box zum Einsatz kommen soll. In den Spezialbereich für qualitativ unzureichenden Code zog zudem der von Android verwendete ION Memory Allocator ein; der wurde dabei aber auch gleich umgebaut und setzt dadurch jetzt auf Kernel-Techniken wie das Dma-Buf-Interface oder den CMA-Allocator auf, statt die von ihnen gebotenen Funktionen selbst zu implementieren.

Durch das neue TCP Auto Corking wartet der Kernel einen kurzen Moment, bevor er kleinere Datenmengen über das Netzwerk versendet. Falls in der Wartezeit weitere Daten auflaufen, legt es diese mit den zuvor aufgelaufenen Daten zusammen und versendet sie in einem größeren Netzwerkpaket. Das reduziert Overhead für das System und die Netzwerk-Infrastruktur, daher kann die Technik den Durchsatz trotz Wartepause steigern. TCP Auto Corking ist standardmäßig aktiv und lässt sich via /proc/sys/net/ipv4/tcp_autocorking deaktivieren.

Linux 3.14 bringt auch eine Reihe von Verbesserungen und Fehlerkorrekturen am erst mit 3.13 eingeführten Paket-Filter-Subsystem Nftables. Unter ihnen die Filtertabelle "inet", deren Regeln für IPv4- und IPv6-Übertragungen gleichermaßen gelten; das soll die Firewall-Konfiguration bei Systemen mit Dual-Stack erleichtern. Zum Kernel stieß zudem der "Proportional Integral controller Enhanced" (PIE) genannte Netzwerk-Paket-Scheduler; er vermeidet Probleme, mit denen traditionelle Scheduler gelegentlich zu den als Bufferbloat bekannten Netzwerk-Übertragungsproblemen beitragen. Ebenfalls neu: Eine Netfilter-Funktion, bei der einzelne Anwendungen oder einer Gruppe von ihnen einen eigenen Satz von Firewall-Regeln erhalten.

Neu dabei ist auch der Qdisc-Scheduler Heavy-Hitter Filter (HHF). Er analysiert den Netzwerkverkehr beim Versenden und versucht, kleine Übertragungen von größeren zu unterscheiden. Den größeren weist er eine geringere Priorität zu, damit diese die Leitung nicht mehr so leicht verstopfen; kleinere Übertragungen sollten dadurch eine geringere Verarbeitungslatenz erhalten, was die "gefühlte" Performance verbessern kann.

Den Sperr-Mechanismus Futex (Fast Userspace Mutex), auf den Userspace-Programme zum Locking zurückgreifen können, soll dank Optimierungen nun erheblich besser skalieren. Kexec arbeitet jetzt auch auf EFI-Systemen; diese bei klassisch bootenden Systemen schon länger unterstützte Technik umgeht beim Start eines neuen Kernels die Firmware; das beschleunigt den Neustart und kann zusammen mit Kdump die Ursachenforschung bei Systemabstürzen erleichtern.

Beim Code zur Arbeitsspeicherverwaltung gab es einige Optimierungen, die die Effizienz der Defragmentierungstechnik Memory Compaction bei Verwendung großer Speicherseiten verbessert. Das kann die Performance mancher Workloads deutlich steigern, wie eine lange Reihe von Messwerten in einem Commit-Kommentar zeigt.

Zram konnte den Staging-Bereich für qualitativ schlechten Code verlassen. Diese Kernel-Funktion kann ein virtuelles Device zum Speichern von Daten bereitstellen, die der Kernel komprimiert im Arbeitsspeicher ablegt. Zram ist dadurch etwa für Auslagerungsspeicher oder das Tmp-Verzeichnis interessant. Eine Reihe von Embedded-Systemen und Live-Medien nutzen Zram schon länger, um knappen Arbeitsspeicher effizienter zu nutzen.

Der Kernel bringt jetzt ein Diagnoseprogramm mit, das beim Optimieren der Suspend- und Resume-Zeiten helfen kann. Neu dabei ist auch das Userspace-Werkzeug lockdep. Es kann andere Userspace-Anwendungen im Betrieb beobachten und dabei Code-Pfade ausweisen, die zu Deadlocks führen könnten – also Situationen, in denen sich zwei Tasks beim Anfordern mehrschichtiger Sperren gegenseitig blockieren. Innerhalb des Kernels haben die Entwickler solche Probleme mit Hilfe der schon viele Jahre alten Lockdep-Infrastruktur weitgehend ausgemerzt; das neue Programm baut auf dem dabei verwendeten Quellcode auf.

Der Xen-Code unterstützt die Paravirtualized Hardware Extensions (PVH), die der Hypervisor des kürzlich vorgestellten Xen 4.4 ermöglicht. Diese Betriebsart funktioniert nur mit darauf abgestimmten Gastsystemen, da diese wie bei normaler Paravirtualisierung (PV) direkt mit dem Xen-Hypervisor kommunizieren. Für die Speicherverwaltung und einige andere Aufgaben greift Xen im PVH-Betrieb allerdings auf die Techniken moderner Prozessoren zurück, die für Xen Full Virtualization (HVM/Hardware Virtual Machine) oder KVM erforderlich sind. Dadurch soll PVH die Vorteile beider Virtualisierungsansätze vereinen und Gäste effizienter betreiben.

Unter den Änderungen an der Performance-Monitoring-Infrastruktur Perf ist Unterstützung für Intels RAPL (Running Average Power Limit); dadurch lassen sich bei der Laufzeitanalyse mit perf nun auch Daten zur Leistungsaufnahme von CPU-Kernen, Prozessor-Infrastruktur und Arbeitsspeicher abrufen, sofern der Prozessor denn RAPL unterstützt (u. a. 1, 2).