Die Neuerungen von Linux 4.13

Seite 6: Infrastruktur

Inhaltsverzeichnis

Einen ganzen Schwung von Änderungen gab es wieder beim Subsystem für Power Management (1, 2). Darunter sind grundlegende Umbauten an der Unterstützung für Suspend-to-Idle (S2I), damit auch das Aufwachen durch Betätigen des Ein/Aus-Tasters funktioniert. Dieser seit Linux 4.10 rudimentär unterstützte Schlafzustand zeichnet sich durch eine schnelle Aufwachzeit aus und wird in der Windows-Welt "Modern Standby" genannt. Er findet sich besonders häufig bei kleinen und leichten Notebooks, darunter etwa auch in der aktuellen Ausgabe des mit Ubuntu ausgelieferten Dell XPS 13, das Ende letzten Jahres bei einem Test der c't einen schlechten Eindruck hinterließ.

Zwischen den Patches am ACPI-Subsystem sind einige, die für Unterstützung von ACPI 6.2 sorgen. Das hat unter andrem Support für eine Schnittstelle zur Fehlerhandhabung von NVDIMMs gebracht.

Durch neue Funktionen soll der Kernel besser vorhersagen können, wann die Hardware das nächste Mal einen Interrupt auslöst (u. a. 1, 2). Dadurch soll der Power-Management-Code in Zukunft besser entscheiden können, wann und wie tief er den Prozessor schlafen legt; das kann Performance-Probleme vermeiden, die auftreten, wenn der Kernel den Prozessor vorschnell oder zu weit schlafen schickt. Details hierzu liefert ein älterer LWN.net-Artikel.

Unter den Anpassungen an den Subsystemen Perf war eine Erweiterung, durch die das Tracing- und Performance-Analyse-Werkzeug perf ftrace jetzt auf bestimmte Funktionen filtern kann. Das Kommando perf stat kann bei Angabe von --smi-cost nun den Einfluss von System Management Interrupts (SMIs) anzeigen. Zwischen den Umbauten am Tracing-Code (1, 2) steckt ein größeres Update für die Dokumentation zu Ftrace.

Die seit einiger Zeit vorangetriebene Umstellung auf reStructured Text (RST) als Format zur Kernel-Dokumentation hat weitere Fortschritte gemacht (u. a. 1, 2). So haben die Kernel-Entwickler jetzt alle DocBook-Vorlagen entfernt und die als fragil geltende Infrastruktur zum Dokumentationsbau mit DocBook entfernt.

Zum Erzeugen eines Kernel sind jetzt mindestens die Binutils 2.20 erforderlich, denn die später in das Kernel-Image einfließenden Teile werden nicht mehr per ld -r inkrementell gelinkt, sondern per ar T als "Thin Archives" erzeugt. Das spart Plattenplatz beim Bauen und beschleunigt den Prozess zugleich ein wenig, wie ein Merge Commit erläutert.

Xen erhielt unter anderem einige Performance-Optimierungen und Support für Domain Restore im PVH- oder PVHVM-Betrieb mit mehr als 32 virtuellen CPUs.

Zwischen den Anpassungen am KVM-Subsystem (1, 2) finden sich welche, die von Microsofts HyperV gebotene Schnittstellen nachrüsten, um die Migration auf KVM zu erleichtern (u. a. 1, 2).

Mit den Änderungen am PCI-Subsystem stieß die Unterstützung für das vom Windows Server 2016 unterstützte HyperV vPCI Protocol 1.2 zum Kernel, die Probleme mit Message Signaled Interrupts (MSI) beseitigen soll.

Details zu anderen Neuerungen im Bereich Infrastruktur finden sich in den wichtigsten Commits der Subsysteme Control Groups, Device Tree (DT), DMA Mapping, EDAC, EFI, IOMMU, IRQ Core, Locking, Kbuild, Kselftests, Objtool, Non-Transparent Bridge (NTB), Percpu, Printk, RAS (Reliability, availability and serviceability), RCU (Read-copy-Update), Prozess-Scheduler, SMP-Hotplug, Timers Compat , Timers Core, Timers Nohz, Thermal und VFIO. Das mag nach viel Änderungen aussehen, aber zur Einstufung die Anmerkung: Das sind nur die während des Merge Windows aufgelaufenen Merge Commits von Subsystemen aus dem Infrastrukturbereich, die der Autor aus dem einen oder anderen Grund für erwähnenswert hielt; einige Dutzende andere haben diese Hürde nicht geschafft.

Nach allerlei Vorarbeiten bei 4.11 und 4.12 erhielt der x86-Code weitere Grundlagen, um bald mit Hilfe von "5 Level Pages Tables" bis zu 4096 Terabyte (4 Petabyte) Arbeitsspeicher adressieren zu können; nach wie vor fehlen aber einige kleine Änderungen, um über die LA57-Funktion zukünftiger Intel-Prozessoren tatsächlich so viel Speicher ansprechen können. Der s390-Architekturcode ist da weiter, denn er unterstützt jetzt 5 Level Pages Tables; auf dieser Architektur lassen sich damit theoretisch bis zu 16 Exabyte (16 Millionen Terabyte beziehungsweise 16.384 Petabyte) RAM adressieren.

Apropos Arbeitsspeicher: Die Kernel-Entwickler haben erste Schritte größerer Umbauten vorgenommen, die das Auslagern großer Speicherseiten (Huge Pages) effizienter machen (u. a. 1), wie LWN.net erläutert; in einigen Messungen konnte das die Swap-Performance um bis zu 15 Prozent steigern. Nach langen, beim LWN.net erwähnten Diskussionen haben die Entwickler zudem das Kernel-intern bei der Speicherallokation nutzbare Flag __GFP_REPEAT in __GFP_RETRY_MAYFAIL umbenannt; das soll deutlicher machen, dass auch solche Speicheranforderung durchaus fehlschlagen können, was der Code besser abgefangen sollte.

Weitere Details zu Änderungen am Architektur-Code nennen die Merge Commits zu den Subsystemen ARM (Core, Defconfig, Driver, DT, FixesSOC), MIPS, ARM64 (Core, DT, SoC), Parsic, Powerpc, S390 (1, 2), SPARC, UML und x86 (ASM, Boot, Microcode, Memory Management, Platform, Timer).