Intels inzwischen dritten Versuch, dedizierte Grafikkarten im Markt zu etablieren, unterstützt Linux 6.8 jetzt mit einem neuen Treiber.
Am 10. März 2024 gab Linus Torvalds Linux 6.8 als nächsten Kernel frei [1]. Im Gegensatz zum umfangreichen Vorgänger 6.7 mit über 17 000 Einreichungen liegt das aktuelle Release im Durchschnitt der letzten Jahre, was die Änderungen angeht. Es bindet auch keine neuen Architekturen oder Dateisysteme ein. Als Glanzlicht darf der neue Intel-Xe-Grafiktreiber gelten, ansonsten spielt sich vieles unter der Haube ab. Nach wenigen Tagen folgte bereits Version 6.8.1 mit wichtigen Sicherheits- und Fehlerbereinigungen.
Torvalds stellt in seiner Release Note eine Zahl heraus, die einen weiteren Meilenstein in der Kernel-Historie darstellt, der sonst aber keine Bedeutung beikommt: “In einem Meer von Normalität sticht eine Sache heraus, die mehr oder weniger zufällige Git-Numerologie ist. Es handelt sich um den letzten Mainline-Kernel, der weniger als 10 Millionen Git-Objekte hat. Konkret sind wir bei 9,996 Millionen Objekten angelangt. Wir hätten also fast wirklich diesen Nicht-Meilenstein überschritten, wäre da nicht die Beruhigung in den letzten paar Wochen gewesen. Natürlich ist das absolut nichts Besonderes, nur eine schöne runde Zahl. Git kümmert das nicht.”
Kernel-Interna
Einen wichtigen Schritt geht Linux 6.8 in Sachen Korrektur von Sicherheitslücken: Kernel.org ist jetzt als CVE Numbering Authority (CNA) registriert [2]. Damit ist die Kernel-Gemeinde in der Lage, an der Katalogisierung von Sicherheitslücken im Kernel per CVE (Common Vulnerabilities and Exposures) teilzunehmen. Das soll der oft gerügten stillschweigenden Handhabung von Sicherheitslücken ein Ende bereiten.
Grafik
Neben den üblichen CPU- und GPU-Updates für kommende Produktreihen, Leistungs- und Sicherheits-Updates, Netzwerk- und Dateisystemaktualisierungen sowie Treibern sticht der neue experimentelle [3] Intel-Xe-DRM-Treiber [4] aus der Masse heraus. Er soll Intels integrierte und diskrete GPUs ab der “Tiger-Lake”-Architektur unterstützen. Da er keine Rücksicht auf Rückwärtskompatibilität nehmen muss, kann der modular ausgelegte Treiber moderne Kernel-Schnittstellen und -Funktionen besser nutzen als der i915-Treiber. Diskrete Grafikkarten bietet Intel nach einigen gescheiterten Versuchen in der Vergangenheit unter der Bezeichnung Arc seit März 2022 an (Abbildung 1).
Für AMD-GPUs halten erste Teile des von Entwicklern bei Valve und Igalia beigesteuerten Radeon-Graphics-Farbmanagements Einzug in den Mainline-Kernel. Noch muss man sie aber beim Kompilieren gesondert aktivieren [5]. Im selben Patchset steckt die Linux-Unterstützung für AMD WBRF (Wi-Fi RF Band Mitigation) zur Entschärfung von Wi-Fi-Radiofrequenzinterferenzen (RFI) für Ryzen-7000- und die kommenden Ryzen-8000-Prozessoren. Der WBRF-Mechanismus ermöglicht es WLAN-Treibern, die von ihnen verwendeten Frequenzen mitzuteilen, sodass sich andere Hardware rekonfigurieren lässt, um Konflikte zu vermeiden. Der Mechanismus wird nur auf Plattformen aktiviert, die einen Bedarf dafür anmelden.
Der V3D-DRM-Treiber verbessert die Unterstützung für den RasPi 5. Distributionen mit Linux 6.8 und Mesa ab v23.3 bieten damit auf dem aktuellen Raspberry-Pi-Modell eine bessere Grafikleistung [6].
Prozessoren
Eine Patch-Serie [7] wertet Intels In-Memory Analytics Accelerator (IAA) auf, der sich in den aktuellen “Sapphire-Rapids”-Xeon-CPUs findet. Mit einem Kryptokompressionstreiber können die Nutzer der Crypto-API des Linux-Kernels den IAA einsetzen. Der Treiber implementiert derzeit sowohl Sync- als auch Async-Versionen von »DEFLATE«. Zur Konfiguration des Treibers durch den Anwender liegt eine Dokumentation samt Beispielen bei.
Mit Linux 6.7 war es erstmals möglich, die 32-Bit-Emulation auf x86-64-Kerneln mit dem Befehlszeilenparameter »ia32_emulation=off« zu beeinflussen. Damit lässt sich die 32-Bit-Emulation abschalten, wenn man sie nicht benötigt. Ab Linux 6.8 informiert Dmesg jetzt mit der Meldung 32-bit emulation disabled. You can reenable with ia32_emulation=on darüber, dass diese Unterstützung abgeschaltet ist.
Der chinesische Loongarch-Prozessor unterstützt mit einem Pull Request für Linux 6.8 die Integration von Rust in den Kernel [8]. Dasselbe Patchset setzt die minimale Clang-Compiler-Version auf v18 und führt DTB-Unterstützung ein.
Linux 6.8 aktualisiert die Rust-Toolchain auf v1.75 [9]. Zudem erhält der Mainline-Kernel einen ersten funktionsfähigen, in Rust geschriebenen Treiber. Er bedient die Fast-Ethernet-Controller des Typs AX88796B von Asix Electronics für den Embedded-Bereich und weitere industrielle Anwendungen. Da es bereits einen in C geschriebenen Treiber für diese Hardware gibt, gilt es, beim Erstellen des Kernels den Schalter »AX88796B_RUST_PHY« zu setzen, damit der Rust-Treiber genutzt wird.
Linux 6.6 hatte nach 15 Jahren den CFS-Scheduler durch den neuen EEVDF-Scheduler (Earliest Eligible Virtual Deadline First) abgelöst. Der erfährt mit Linux 6.8 eine weitere Verbesserung durch einen von Abel Wu (Linutronix) beigesteuerten neuen Fastpath für die Aufgabenauswahl, der diese wesentlich effizienter macht [10]. Weitere, von Ingo Molnár eingereichte Patches betreffen den Deadline Scheduler und das NUMA Balancing [11].
Initiale Unterstützung erhielten die SoCs Samsung Exynos Auto v920, Google GS101 (Tensor G1), Mediatek MT8188, Qualcomm SM8650 (Snapdragon 8 Gen 3), Qualcomm X1E80100 (Snapdragon X Elite) und Unisoc UMS9620 (Tanggula 7) [12]. Dagegen entfällt der Support für ARM11 MPCore. Diese ARM11-SMP-Konfiguration war vor rund 20 Jahren eine der ersten Multiprozessorkonfigurationen, die der ARM-Kernel unterstützte.
Eine Anpassung des Intel-P-State-CPU-Treibers sorgt jetzt dafür, dass Geräte mit Intels “Meteor-Lake”-CPUs die maximale Boost-Geschwindigkeit unter Linux erreichen. Bisher fehlten dafür rund 100 MHz. Dasselbe gilt für Intels Core-Ultra-Mobile-Prozessoren.
Dateisysteme und Storage
Das erst vor Kurzem in den Kernel integrierte Dateisystem Bcachefs erhält erneut Korrekturen und Leistungsverbesserungen. Entwickler Kent Overstreet bereitet darin unter anderem eine Neufassung der Speicherplatzberechnung vor [13]. Die Multi-Threaded-4K-Random-Write-Leistung steigt von rund 650k IOPS auf etwa 850k IOPS, was einem gut 30 Prozent höheren Durchsatz entspricht.
XFS erhielt nach mehreren Jahren Entwicklung mit Kernel 6.6. initiale Unterstützung für Online Repair mittels Fsck. Die sporadisch beim Bootvorgang durchgeführte Prüfung der Konsistenz des Dateisystems mittels Fsck findet mit Online Repair bei eingehängtem Dateisystem statt [14]. Der Patch für Linux 6.8 reserviert künftig Platz für etwaige Online-Reparaturen und unterstützt zudem die Reparatur von Inodes und das Überprüfen des Inhalts von Quota-Dateien.
Das noch recht neue Flash-friendly File System (F2FS) erhielt Verbesserungen für die Verwendung auf Zoned Block Devices (ZBDs), was die Schreibleistung erhöhen soll. Ein ZBD ist in Regionen unterteilt, die sich nur sequenziell beschreiben lassen. Dadurch kann man die Write Amplification bei SSDs reduzieren. F2FS unterstützt auf ZBDs künftig das für Android OTA unerlässliche Deaktivieren von Checkpoints und verbessert das Verhalten von Zoned Block Storage (ZBS). Zudem exportiert Sysfs jetzt mehr Informationen über den jeweiligen Status von Discard [15].
Die Filesystem Mount API des Virtual File System (VFS) des Kernels erhielt zwei neue Systemaufrufe. Die beiden Neuzugänge »statmount()« und »listmount()« liefern detailliertere Informationen über Einhängevorgänge. Zudem führt der Patch 64-Bit-Mount-IDs ein, die bisherigen waren lediglich 32 Bit breit [16].
Eine weitere Ergänzung des VFS betrifft eine neue Kconfig-Option, die es ermöglicht zu kontrollieren, ob Schreibvorgänge auf eingehängte Blockgeräte erlaubt sind. Diese Sicherheitsfunktion soll Schreibvorgänge auf eingehängte Geräte verhindern, die zu einer Beschädigung des Dateisystems oder zu Abstürzen führen können. Hinzu kommt die Boot-Option »bdev_allow_write_mounted=« für die Kernel-Befehlszeile, um die Schreibkontrolle für eingehängte Blockgeräte zu beeinflussen [17].
HID
Das Kernel-Subsystem Human Interface Devices (HID) erhielt einige Fehlerbereinigungen [18] für den Steam-HID-Treiber, die aus Vorversionen des aktuellen SteamOS stammen. Der Treiber ermöglicht den Input beim Steam Controller und dem Steam Deck. Künftig gibt es neben dem Desktop-Modus einen Gamepad-only-Modus. Analog zu Steam bringt der Patch auch Unterstützung für haptische Impulse. Initiale Unterstützung gibt es daneben für den Nintendo Switch Online Controller (NSO) und für die von Lenovo als Konkurrenz zum Steam Deck im Markt platzierte Spielekonsole Legion Go.
Netzwerk
Durch grundlegende Verbesserungen in der Struktur des Netzwerkcodes und bei der Optimierung der Cacheline-Nutzung steigert Linux 6.8 die Leistung von TCP bei vielen gleichzeitigen Netzwerkverbindungen um bis zu 40 Prozent. Die Patch-Serie reorganisiert die Kernvariablen des Netzwerk-Stacks, um den Cacheline-Verbrauch während der Datenübertragung zu minimieren.
Die Unterstützung neuer Ethernet-Treiber umfasst Octeon-CN10K-Geräte, Broadcom 5760X P7, Qualcomm SM8550 und Texas Instruments DP83TG720S PHY. Auch für Wi-Fi 7 und IEEE 802.11be (Extremely High Throughput) gab es Patches [19]. Neu ist der Support für Bluetooth-Radio von IMC Networks. Gleichzeitig entfallen veraltete WLAN-Treiber aus dem Kernel, darunter Atmel at76c50x, Orinoco ISA/PCMCIA 802.11b, Aviator/Raytheon, Planet WL3501, RNDIS USB 802.11b sowie zd1201-802.11b-USB-Dongles.
Fazit und Ausblick
Neben Verbesserungen unter der Haube bringt Linux 6.8 auch solche mit, die der Anwender wahrnimmt. Dazu zählen unter anderem die gesteigerte TCP-Leistung und die Verbesserungen am Scheduler. Davon können sich Ubuntu-Anwender seit dem 21. April überzeugen, denn Ubuntu 22.04 LTS “Noble Numbat” kommt mit Linux 6.8. Auch Ubuntu 22.04 LTS “Jammy Jellyfish” erhält mit der nächsten Aktualisierung auf 22.04.5 im Rahmen des Hardware-Enablements den Kernel 6.8.
Die Entwicklung zu Linux 6.9 ist bereits in vollem Gang. Zu den To-dos für den nächsten Kernel gehören unter anderem verbesserter Support für Framebuffer-Konsolenschriftarten auf 4K-Displays und kürzere Boot-Zeiten für Geräte mit extrem viel Arbeitsspeicher (512 GByte bis 2 TByte) durch die Parallelisierung beim Initialisieren von Huge TLB Pages. Neu ist die Unterstützung für AMDs P-State Preferred Core und den FUSE-Passthrough-Modus.
Als veraltet gilt mit Kernel 6.9 das 30 Jahre alte Ext2-Dateisystem. Der Hauptgrund für die Verrentung ist die fehlende Unterstützung für die Unix-Zeit über den 19. Januar 2038 hinaus, auch bekannt als Jahr-2038-Problem. Das Extended File System v2 kam bis zur Jahrtausendwende aktiv zum Einsatz, inzwischen lösen es Ext3 und in jüngerer Zeit auch Ext4 mehr und mehr ab. Das Release von Linux 6.9 steht für Mitte Mai an.
Alle Neuerungen zu Linux 6.8 lesen Sie bei Interesse auf der Kernel-Newbies-Webseite [20] nach. (uba)
Infos
- Linux 6.8: https://lwn.net/Articles/964977/
- CNA: http://www.kroah.com/log/blog/2024/02/13/linux-is-a-cna/
- Intel-Xe-Patch: https://lore.kernel.org/dri-devel/ZXzTA75G5VhCrDis@intel.com/T/#u
- Xe-Treiber: https://docs.kernel.org/next/gpu/rfc/xe.html
- AMD: https://lore.kernel.org/dri-devel/20231215193519.5040-1-alexander.deucher@amd.com/
- V3D: https://www.kernel.org/doc/html/next/gpu/v3d.html
- IAA: https://www.phoronix.com/news/Intel-IAA-Driver-Linux-6.8
- Loongarch: https://lore.kernel.org/lkml/20240119110700.335741-1-chenhuacai@loongson.cn/T/#u
- Rust-Toolchain: https://lore.kernel.org/lkml/20240108012055.519813-1-ojeda@kernel.org/
- EEVDF: https://lore.kernel.org/lkml/170003909401.391.2052507290620204426.tip-bot2@tip-bot2/
- Deadline: https://lore.kernel.org/lkml/ZZwBi%2FYmnMqm7zrO@gmail.com/
- SoCs: https://lore.kernel.org/lkml/b1923a64-b5e6-4dac-988e-ea2a75e948d9@app.fastmail.com/
- Bcachefs: https://lore.kernel.org/lkml/a34bqdrz33jw26a5px4ul3eid5zudgaxavc2xqoftk2tywgi5w@ghgoiavnkhtd/
- Online Repair: https://docs.kernel.org/next/filesystems/xfs-online-fsck-design.html
- F2FS: https://lore.kernel.org/lkml/ZaAzOgd3iWL0feTU@google.com/
- Neue Syscalls: https://lore.kernel.org/lkml/20240105-vfs-mount-5e94596bd1d1@brauner/
- “Writing to Mounts”: https://lore.kernel.org/lkml/20240105-vfs-super-4092d802972c@brauner/
- HID: https://lore.kernel.org/lkml/nycvar.YFH.7.76.2401082125270.29548@cbobk.fhfr.pm/
- Netzwerk: https://lwn.net/Articles/951321/
- Kernel Newbies: https://kernelnewbies.org/Linux_6.8







