Aus Linux-Magazin 08/2024

Linux 6.9: Beschleunigtes FUSE-Dateisystem

© liudmilachernetska / 123RF.com

Linux 6.9 bietet zwei Highlights und die gewohnte Mischung aus aufgefrischten Treibern für aktuelle und kommende Hardware, effektiveren Dateisystemen und Verbesserungen bei Security und Networking.

Linus Torvalds entließ Linux 6.9 Mitte Mai 2024 nach sieben Release-Kandidaten. Wie Torvalds in seinen Veröffentlichungshinweisen schreibt, standen zwar noch einige kleine Korrekturen aus, rechtfertigten allerdings nicht eine Verlängerung des Entwicklungszyklus um eine weitere Woche. Sie gelten inzwischen als zurückportiert [1]. Zudem lässt Torvalds wissen, dass die Firma Ampere Computing LLC ihm eine leistungsstarke ARM-AArch64-Workstation – vermutlich aus der Altra-Max-Serie – als Arbeitsgerät zur Seite gestellt habe. Die Workstation löst das bisher für ARM-Builds genutzte Apple Silicon MacBook Air ab [2]. Schon im Jahr 2020 hatte sich Ampere Computing LLC spendabel gezeigt und Debian mit drei hochleistungsfähigen ARM64-Servern ausgestattet [3].

AMD und Intel

Den beiden führenden Halbleiterherstellern AMD und Intel gelang es erneut, wichtige Neuerungen und Anpassungen für aktuelle und kommende CPU-Plattformen im neuen Kernel unterzubringen. Dazu zählt unter anderem das AMD P-State Preferred Core Handling als Teil der Energieverwaltung für aktuelle Ryzen-Systeme, an dem AMD seit über einem Jahr arbeitete [4]. Beim Verwenden des AMD P-State Treibers und eingeschaltetem Preferred Core Handling im BIOS ist diese Funktion mit Kernel 6.9 automatisch im Einsatz. Leistungsverbesserungen gab es außerdem für die auf Server- und Embedded-Systeme abzielenden AMD EPYC Gen4 Mikroprozessoren.

Einen Schub erhielten Intels Core-Ultra-7-CPUs , die in Intel-Notebooks der Meteor Lake-Architektur stecken [5]. Die Stellschrauben, an denen Intel dafür gedreht hat, erlauben dem Intel P-State-Treiber, sich bei bestimmten Modellen über die balanced_performance der Energy Performance Preference (EPP) hinwegzusetzen. Dadurch lässt sich den Core Ultra-CPUs mehr Leistung entlocken. Intel bereitet zudem mit X86S einen großen Schritt zur Vereinfachung der Intel-Architektur vor. Die Spezifikation des neuen Befehlssatzes veröffentlichte der Hersteller vor einem Jahr [6]. Das Ziel besteht in einer reinen x86-64-Bit Architektur. Dazu müssten CPUs direkt in den 64-Bit-Modus booten. Derzeit steht am Beginn des Boot-Prozesses noch ein Bootstrapping der CPU für diesen Modus.

Mit dem direkten Booten in den 64-Bit-Modus ließe sich der Legacy-Mode für 16- und 32-Bit entrümpeln. Obwohl regelmäßig Patches hinzukommen, dürfte die Entwicklung weiterhin einige Zeit in Anspruch nehmen [7]. Darüber hinaus gibt es eine weitere Intel-Spezifikation zum Reduzieren der Latenzen beim Wechsel zwischen Privilegierungsstufen innerhalb künftiger CPUs in Kernel 6.9. Es handelt sich um das Flexible Return and Event Delivery (FRED), das das problembelastete IDT Event Delivery ablöst [8].

Nach x86_64 und LoongArch erhält ARM64 (AArch64) jetzt Unterstützung für die Programmiersprache Rust. Das dürfte Linus Torvalds angesichts seiner neuen ARM-Workstation freuen, da sich nun sämtliche Teile für die Entwicklung des Rust-Kernels auf 64-Bit-ARM an Ort und Stelle befinden. Der Commit leitet daneben die Reorganisation des virtuellen Adressraums ein, was die Unterstützung des LPA2-52-Bit-VA/PA-Adressbereichs [9] unter Nutzung von 4KByte- und 16KByte-Seiten ermöglicht [10]. Ferner kennt der frische Kernel wieder neue ARM-SoCs und Smartphones; unter anderem sind Qualcomm, Texas Instruments, Mediatek, NXP, Rockchip und NVIDIA genannt [11].

Grafik

Intel aktiviert mit seinem i915-Grafiktreiber in Linux 6.9 standardmäßig Fastboot, auch auf Plattformen älter als Skylake aus dem Jahr 2015. Fastboot soll den Bootvorgang verbessern und unnötige Moduseinstellungen während des Bootvorgangs reduzieren. AMD schickt die erst im Jahr 2020 eingeführte und seit letztem Jahr standardmäßig aktivierte Video-Optimierung FreeSync in den Ruhestand. Den Grund für die Frühverrentung liefert die Integration von variablen Bildwiederholfrequenzen (VRR) in den Kompositoren von Desktops wie KDE und Gnome. Sie führte zu Fehlern bei FreeSync und macht diese Funktion obendrein überflüssig [12]. Der derzeit noch experimentelle Intel XE Grafiktreiber für ihre dedizierten Grafikkarten erhielt ebenso zusätzliche Verbesserungen.

Das Framebuffer-Subsystem FBDEV haben die Entwickler aufgebohrt: Es gestattet nun eine höhere Schriftgröße in der Framebuffer-Konsole fbcon, was vor allem 4k-Displays zugutekommt. Das Update für Linux 6.9 erlaubt eine maximale Schriftbreite von 64 Pixel und eine maximale Höhe von 128 Pixel für diese Konsole [13].

Dateisysteme und Storage

Eine der herausragenden Verbesserungen des neuen Kernels liegt in der initialen Unterstützung des Passthrough-Modus für das FUSE-Dateisystem. Die Funktion steckt seit Jahren im Entwicklungsprozess. Sie ermöglicht es dem FUSE-Daemon, während der Bearbeitung der Operation »open«/»create« zu entscheiden, ob auf die jeweils zu bearbeitende Datei ein Zugriff im Passthrough-Modus funktioniert.

Das bedeutet, dass der Kernel alle weiteren Lese- und Schreiboperationen unter Einsatz der VFS-Schicht direkt an das untere Dateisystem und nicht an den FUSE-Daemon weiterleitet. Das kann die I/O-Leistung um 5 bis 10 Prozent steigern. Damit reichen FUSE-Operationen – besonders bei massiven Änderungen an einer Datei – fast an die Geschwindigkeit von nativen Dateisystemen heran. Momentan ist das nur privilegierten Servern erlaubt, doch die Einschränkung wird in Zukunft wegfallen [14].

Entwicklungen erfuhren außerdem die Dateisysteme Btrfs, Bcachefs, XFS, exFAT und F2FS. Während Btrfs allgemeine Leistungssteigerungen erhielt [15], spendierte man Bcachefs besseres Journaling und ein effizienteres Discard-Verhalten [16]. Zudem lassen sich Subvolumes jetzt umbenennen. Bei XFS optimierten die Entwickler die Online-Reparatur-Funktion [17]. Microsofts Dateisystem exFAT verbessert die Mount-Option »dirsync« durch die Synchronisierung auf einen speziellen Verzeichniseintrag »dentry-set« statt auf einen Eintrag pro Verzeichnis [18]. Die Mount-Option »dirsync« dient dazu, alle Verzeichnisaktualisierungen synchron abzuarbeiten [19]. Der alte read-only NTFS-Legacy-Treiber ist entfernt und erleichtert den Kernel um fast 30 000 Zeilen. Seit Linux 5.15 vom November 2021 trat der NTFS3-Treiber der Firma Paragon Software an seine Stelle [20].

Einem weiteren Dateisystem steht die Rente ebenfalls bald bevor. Das im Jahr 1993 erstmals veröffentlichte Ext2-Dateisystem bekommt mit Kernel 6.9 die Markierung “veraltet” und steht somit auf der Abschussliste [21]. Den Hauptgrund für das Attribut “depricated” liefert der Umstand, dass Ext2 nicht für das Jahr-2038-Problem (Y2K38) vorbereitet ist. Am 19. Januar 2038 um 03:14:07 Uhr UTC überschreitet die Anzahl der vergangenen Sekunden der Unixzeit die Kapazität des zur Verfügung stehenden 32-Bit-breiten Speichers [22].

Einen weiteren Höhepunkt von Linux 6.9 bildet DM-VDO, ein Virtual Data Optimizer für den Device-Mapper. Er beherrscht Inline-Deduplizierung, Komprimierung, Zero-Block-Elimination, Thin Provisioning und andere Funktionen. DM-VDO existiert seit dem Jahr 2013 und gehört seit 2017 zu Red Hat. Das Unternehmen gab DM-VDO nach der Übernahme der Permabit Technology Corp als Open Source frei. Kurz darauf tauchte DM-VDO als Kernel-Modul out-of-tree auf und zieht nun endlich in den Mainline-Kernel ein [23].

Trivia

Linus Torvalds hat eine ausufernde Diskussion mit über 100 Beiträgen auf der Kernel-Mailingliste losgetreten [24]. Der Auslöser dafür: Ein Entwickler hatte in einer Kconfig-Datei ein verstecktes Tab (Tabulator) zu einem Leerzeichen abgeändert, da das seiner Ansicht nach Parsing-Tools beim fehlerfreien Lesen der Datei hilft [25]. Da der betreffende Commit keinerlei weiteren Änderungen enthielt, lehnte Torvalds ihn ab. Seinen Unmut über das Verwenden von Leerstellen für Einrückungen tat Torvalds dadurch kund, dass er in derselben Datei an anderer Stelle sechs Leerzeichen in Tabs umwandelte und androhte, weiterhin so zu verfahren, bis das Problem mit den Parsern behoben sei. An die Adresse der Parsing-Tools, die Probleme mit Tabs haben, schrieb er in der Commit-Nachricht: “Denn wenn sie Tabulatoren nicht als Whitespace parsen können, sollten Sie keine Kernel-Kconfig-Dateien analysieren.”

Fazit

Hinter Linux 6.9 verbirgt sich in großen Teilen ein Wartungsrelease, aus dem trotzdem einige Neuerungen hervorstechen. Da macht zum einen der Passthrough-Modus für das FUSE-Dateisystem dem allzu oft lahmen FUSE Beine. Zum anderen schaffte es der Virtual Data Optimizer DM-VDO für den Device-Mapper endlich in den Mainline-Kernel und stellt dort Inline-Deduplizierung, Komprimierung, Zero-Block-Elimination und Thin Provisioning bereit. Alle Neuerungen zu Linux 6.9 fasst die Webseite “Kernel Newbies” zusammen. [26]. (uba)

Infos

  1. Release: https://lore.kernel.org/lkml/CAHk-=whnKYL-WARzrZhVTZ8RP3WZc24C9_DT7JMJooONNT2udQ@mail.gmail.com/T/#u
  2. Ampere Altra: https://www.mifcom.de/workstation-ampere-altra-max-m128-26-id21877
  3. Debian: https://www.debian.org/News/2020/20200616.de.html
  4. Preferred Core: https://lore.kernel.org/lkml/20240112092531.789841-1-li.meng@amd.com/
  5. Intel EPP: https://lore.kernel.org/lkml/20240220022607.485129-1-srinivas.pandruvada@linux.intel.com/
  6. X86S: https://www.intel.com/content/www/us/en/developer/articles/technical/envisioning-future-simplified-architecture.html
  7. X86S Patches: https://lore.kernel.org/lkml/ZfAjjSP7raRzEA5%2F@gmail.com/
  8. FRED: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=720c857907530e6cdc86c9bc1102ea6b372fbfb6
  9. 52-Bit VA: https://opensource.com/article/20/12/52-bit-arm64-kernel
  10. LPA2 Commit: https://lore.kernel.org/lkml/20240313160018.2603344-1-catalin.marinas@arm.com/
  11. ARM SoCs: https://lore.kernel.org/lkml/89d0bb77-a608-4ae0-b9d9-e17fdf5f12da@app.fastmail.com/
  12. FreeSync: https://gitlab.freedesktop.org/agd5f/linux/-/commit/959143dab12fbc84352f8a12bc3cd79cc229178b
  13. FBDEV: https://lore.kernel.org/lkml/Zfx8hg0RRDmKbJ0O@carbonx1/
  14. FUSE: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=6ce8b2ce0d7e3a621cdc9eb66d74436ca7d0e66e
  15. Btrfs: https://lore.kernel.org/lkml/cover.1710183792.git.dsterba@suse.com/
  16. Bcachefs: https://lore.kernel.org/lkml/b2cm5vuqgiel2gwdzaxvs7hfjnvio3lu6zcu24wwmzt3xsofow@6zdd466oh7jj/
  17. XFS: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=babbcc02327a14a352a7899dc603eaa064559c75
  18. dentry:https://litux.nl/mirror/kerneldevelopment/0672327201/ch12lev1sec7.html
  19. dirsync: https://lore.kernel.org/lkml/CAKYAXd-iGLkXgDa8cj8Un7xz_8zW-AYncpyfy16-2y9KNLNJig@mail.gmail.com/
  20. NTFS: https://lore.kernel.org/lkml/20240308-vfs-ntfs-ede727d2a142@brauner/
  21. Ext2: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=b960e8093e7a57de98724931d17b2fa86ff1105f
  22. Y2K38: https://de.wikipedia.org/wiki/Jahr-2038-Problem
  23. DM-VDO: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=61387b8dcf1dc0f30cf690956a48768a3fce1810
  24. Tabs/Spaces: https://public-inbox.org/git/alpine.LFD.0.999.0710161722320.26902@woody.linux-foundation.org/
  25. Kconfig: https://git.kernel.dk/?p=linux-block.git;a=commit;h=d96c36004e31
  26. Kernel Newbies: https://kernelnewbies.org/Linux_6.9
DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDFUmfang: 3 HeftseitenPreis €0,99
(inkl. 19% MwSt.)
LINUX-MAGAZIN KAUFEN
EINZELNE AUSGABE Print-Ausgaben Digitale Ausgaben
ABONNEMENTS Print-Abos Digitales Abo
TABLET & SMARTPHONE APPS Readly Logo
E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Inline Feedbacks
Alle Kommentare anzeigen
Nach oben