Linux 5.12: Standard-Release mit neuem Hypervisor & überarbeitetem ID-Remapping

Seite 3: OProfile geht in Rente

Inhaltsverzeichnis

Der bereits seit Linux 2.4 und somit seit rund 20 Jahren im Kernel befindliche System-Profiler OProfile wurde mit der Kernel-Version 5.12 gestrichen. Seit Einzug des perf-Subystems hatten zwei Systeme ums Profiling gebuhlt, und der Kernel hatte somit zwei redundante Interfaces samt separater Funktionalität vorgehalten. Nachdem die Userspace-Tools von OProfile mit Version 1.4 vollständig auf das jüngere perf umgestellt worden waren, wurde der Kernel-Part von OProfile schließlich überflüssig.

Nach dem Abschied von OProfile aus Linux 5.12 funktionieren antiquierte Versionen der OProfile-Tools nicht mehr, so dass spätestens jetzt ein Upgrade auf eine neuere Version zur Notwendigkeit wird. Als Nebeneffekt eliminiert Linux 5.12 übrigens auch den Code für dcookies im Dateisystem, da dieser außerhalb von OProfile ohnehin nicht genutzt wird.

Die Integration und Weiterentwicklung von Multipath TCP im Linux-Kernel schreitet voran. Eine willkommene Erweiterung in der neuen Kernel-Version ist die Möglichkeit, Prioritäten für Subflows festzulegen. So kann beispielsweise ein Subflow als "Backup" genutzt werden und einspringen, wenn der primäre Subflow ausfällt.

netfilter gestattet nun, einzelnen Tabellen einen Besitzer zuzuweisen. Damit ist es möglich, die exklusive Kontrolle und Verwaltung einer Tabelle an einen Prozess beispielsweise einen Firewall-Daemon zu übertragen.

Der BPF ("Berkeley Packet Filter") wartet in Linux 5.12 mit atomaren Operationen auf. Diese sind notwendig, um global eindeutige Cookies in BPF-Programmen zu erzeugen. Allerdings geht der Entwickler Alexei Starovoitov davon aus, dass sie auch in anderen Anwendungsszenarien sinnvoll sein können. Näheres findet sich in der zugehörigen Merge-Beschreibung.

BPF-Programme lassen sich jetzt auch an "Bare-Tracepoints" anhängen. "Bare-Tracepoints" haben kein zugehöriges Trace-Event, das aus dem Userspace sichtbar wäre. Entstanden sind sie aus der Befürchtung, die betreffenden aus dem Userspace nicht sichtbaren Trace-Events könnten in das ABI ("Application Binary Interface") wandern. Wären sie dort einmal angelangt, wäre es schwierig, das später wieder zurückzudrehen.

Eine willkommene Neuerung ist der direkte lesende und schreibende Zugriff auf den Stack mittels Zeiger und variablem Offset. Bislang war dies BPF-Programmen verwehrt und nur indirekt über Helper möglich. Damit können auf dem Stack alloziierte Puffer für die Datenmanipulation genutzt werden. Gerade für kleinere Datenmengen ist das deutlich komfortabler und einfacher als beispielsweise über ein Per-CPU-deklariertes Array zu gehen.

Mit dem neuen Linux-Kernel hält ACRN als zusätzlicher Hypervisor Einzug. Er ist für Einsatzbereiche wie IoT (Internet of Things) und Embedded-Systeme vorgesehen. Es handelt sich um einen hybriden Virtual Machine Monitor (VMM). Der direkt auf der Hardware aufsetzende ACRN Hypervisor befindet im Kernel. Im Userspace ist eine privilegierte Service-VM, welche die Systemressourcen wie CPUs, Arbeitsspeicher und I/O-Zugriffe der User-VMs verwaltet. Die Gastsysteme sind jeweils in eigenen User-VMs im Userspace angesiedelt und adressieren ihre Ressourcen über die Service-VM. ACRN erlaubt den Betrieb mehrerer User-VMs mit Linux, Android und Windows.

KVM ("Kernel-based Virtual Machines") erlaubt in Linux 5.12, auf x86 und x86_64-Systemen im Userspace Xen-Hypercalls zu emulieren. Die ursprünglich von Oracle 2019 ins Spiel gebrachte Funktionalität erlaubt es, die Xen HVM ("Hardware Virtual Machine"), die eigentlich auf den direkten Betrieb auf der Hardware ausgelegt und angewiesen ist, in einen KVM-Gast zu verfrachten.

Darüber hinaus wurde KVMs MMU-Code ("Memory Management Unit") verbessert. Das neue "Two Dimensional Paging" (TDP MMU) parallelisiert die MMU, was den monolithischen MMU-Lock ablöst und dessen Flaschenhals verhindern soll.