Linux 5.3 freigegeben: Prioritäten deckeln und Trouble für Nvidia

Seite 3: Zeitreisen-Funktion und Schluckauf bei AMD

Inhaltsverzeichnis

Durch den Zeitreisen-Modus kann die Uhr in User Mode Linux langsamer oder schneller laufen.

(Bild: Screenshot von git.kernel.org – 065038706f77 )

User Mode Linux (UML), mit dem Linux als regulärer Prozess unter einem anderen Linux laufen kann, bietet jetzt eine "Zeitreisen"-Funktion – allerdings keine echte, denn durch den neuen "Time Travel Mode" kann die Uhr in einer UML-Umgebungen nur langsamer oder schneller als in Wirklichkeit laufen. Das Feature stammt von einem Entwickler, der damit Tests von Zeitüberschreitungen zügiger durchführen möchte. Die automatischen Tests für die Access-Point-Software Hostap wissen den Time Travel Mode bereits zu nutzen (1, 2, 3).

Gerade Systeme mit vielen Prozessorkernen sollen von einigen Änderungen profitieren, die Performance und Fairness der an vielen Stellen des Kernels genutzten Reader Writer Semaphores (rwsem) erheblich verbessern (u. a. 1, 2, 3, 4, 5, 6, 6). Laut den Commit-Kommentaren legen einige Benchmarks, mit denen der Entwickler gezielt die Vorteile der Patches zeigen will, durch die Umbauten um eine Größenordnung zu; einzelne Tests sogar um zwei.

Linux unterstützt jetzt auch die mit PCIe 5.0 definierte Übertragungsgeschwindigkeit mit 32 GT/s.

Linux versteckt den Zufallszahlengenerator älterer AMD-Prozessoren, denn auf einzelnen Boards arbeitet er nach den Suspend fehlerhaft.

(Bild: git.kernel.org – c49a0a80137c )

Bei AMD-CPUs der älteren Familien 15h (Bulldozer) und 16h (Jaguar) versteckt Linux in /proc/cpuinfo nun die Unterstützung für die x86-Instruktion RDRAND(), über die Programme Zufallszahlen anfordern können. Viele Programme nutzen den Zufallszahlenzahlengenerator dadurch nicht mehr, obwohl sie es prinzipiell könnten. Mit der Zufallszahlen-Problematik der Ryzen-3000-CPUs, die jüngst Aufmerksamkeit erregte, hat das Ganze indes so gut wie nichts zu tun.

AMDs Kernel-Entwickler haben sich zu dieser Maßnahme entschlossen, weil der Random Number Generator (RNG) bei einer Reihe von Boards für 15h- und 16h-CPUs keine Zufallsdaten mehr liefert, nachdem das System aus dem Bereitschaftsmodus (Suspend) aufwacht. Das liegt nicht an den CPUs, sondern an Fehlern in den BIOSen, was unter anderem zu einem Problem mit Systemd geführt hat. Linux kann das Fehlverhalten allerdings nicht beim Booten erkennen; AMDs Kernel-Entwickler haben sich daher entschlossen, die Verfügbarkeit von RDRAND() auch bei korrekt arbeitenden Systemen zu verstecken. Dies lässt sich aber über den neuen Parameter rdrand=force unterbinden.

Beim Schreiben von Programmen für die BPF Virtual Machine des Kernels können Entwickler jetzt Schleifen ganz normal verwenden, wie man es aus anderen Programmiersprache kennt. Bislang ließen sie sich allenfalls nutzen, wenn der Compiler die Schleifen per #pragma unroll zuerst aufgelöst hat. Das war nötig, denn der BPF Verifier hat Loops bislang abgewiesen; damit schützte er Linux vor böswilliger Software, die den Prozessor mit Endlosschleifen vereinnahmt und den Kernel so aus dem Tritt bringt.

Diese Gefahr unterbindet die BPF-Prüfschicht jetzt, indem sie den Ablauf von Schleifen komplett simuliert. Dafür müssen die Schleifen allerdings endlich sein und sie dürfen das Programm nicht so stark aufblähen, dass es mehr als die maximal erlaubten Instruktionen ausführen würde. Dies und einige andere für "Bounded Loops" entstandenen Detailverbesserungen erleichtern das Schreiben von BPF-Programmen, die in einigen Bereichen immer populärer werden – etwa zur besonders effizienten Handhabung von Netzwerkpaketen per XDP (eXpress Data Path) oder Tracing- und Performance-Analysen mit BCC oder Bpftrace.

Zu einem Performance-Gewinn beim Zugriff auf den NFS-Server kann die neue Mount-Option nconnect=n führen, über die sich der NFS-Client des Kernels anweisen lässt, mehrere TCP-Verbindungen zum Server aufzubauen (u a. 1, 2, 3, 4, 5).

Ext4 soll dank eines weiteren Cache jetzt oft schneller arbeiten, wenn es die Groß- und Kleinschreibung ("Case Insensitivity") über das bei Linux 5.2 eingeführte "Casefold Feature" ignoriert.

Dank Support für die Intel Speed Select Technology (ISST) können Admins das Stromsparverhalten einiger moderner Xeon-Prozessoren in Zukunft besser an die jeweiligen Gegebenheiten und Bedürfnisse anpassen.

Linux unterstützt die jüngst definierten x86-Instruktionen UMONITOR, UMWAIT und TPAUSE, die Intel bald in Server-Prozessoren unterstützen will (1, 2, 3, 4, 5). Programme können mit ihnen kurzzeitig warten, belasten dabei die CPU aber nicht mit unnützer Arbeit, wie es die bislang in solchen Situationen oft verwendeten Busy Loops tun. Details dazu liefert der LWN.net-Artikel "Short waits with umwait"

Ab Linux 5.3 handhabt der Kernel die Multi-Die Topology einiger High-End-CPUs von Intel besser. Das ist für bestmögliche Geschwindigkeit wichtig, damit der Kernel Prozesse und die von ihnen verwendenden Arbeitsspeicherbereiche möglichst nahe beieinander hält.

Neu dabei ist auch der Support für die x86-Prozessorarchitektur der chinesischen Firma Zhaoxin, die das Design der früher von VIA produzierter x86-Prozessoren wie C3, C7 und Nano weiterentwickelt.

Durch einen Cpufreq-Treiber für den Raspberry Pi kann Linux jetzt die Firmware bitten, den Prozessor des populären Einplatinencomputers mit einer bestimmten Frequenz zu betreiben. Die Firmware, die ohne den Treiber autark entscheidet, kann sich allerdings über den Wunsch hinwegsetzen.

Linux 5.3 bringt Code zum Betrieb unter der Virtualisierungslösung ACRN mit. Dabei handelt es sich um einen Hypervisor, der vor allem für den Echtzeiteinsatz und sicherheitskritische Systeme gedacht ist. Er wird in einem Projekt vorangetrieben, dem die Linux Foundation hilft.

Der Mainline-Kernel unterstützt nun auch das mit i.MX8MQ-Prozessor ausgestattete Board, das Purism mit dem Entwicklerkit für seine Linux-Smartphones Librem5 vertreibt. Das ist aber nur eine von über ein Dutzend mit ARM- oder ARM64-Prozessor ausgestatteten Platinen, die Linux fortan anzusprechen weiß; die anderen nennt ein Git-Merge-Kommentar, der auch darauf hinweist, dass viele Boards die bei Linux 5.2 dazugestoßenen Treiber für Mail-GPUs von ARM jetzt automatisch laden.