c't 4/2018
S. 32
Kernel-Log
Linux 4.15
Aufmacherbild

Kernel-Log

Linux 4.15: AMD-Vega-Support & RISC-V-Unterstützung

Der neue Kernel enthält einen Lösungsversuch für ein altbekanntes Stromsparproblem, das die Akkulaufzeit vieler Linux-Notebooks reduziert. Die Unterstützung für AMDs neue Grafikchips hat sich erheblich gemausert. Auch zur Ressourcenregelung und für VR-Brillen ist Neues dabei.

Nicht wie sonst neun oder zehn Wochen, sondern elf hat die Entwicklung des Ende Januar freigegebenen Linux 4.15 gedauert. Die Hauptschuld daran tragen keineswegs die Weihnachts- und Neujahrsfeiertage, sondern die Maßnahmen gegen die zu Jahresbeginn publik gewordenen Sicherheitslücken Meltdown und Spectre. Ein Artikel in c’t 3/18, Seite 72, hat diese schon näher erläutert, hier noch einmal die Kurzform:

Gegen Meltdown greift die in 4.15 eingeflossene Page Table Isolation (PTI). Die Technik reduziert allerdings die Performance in bestimmten Situationen und funktioniert bislang nur bei 64-Bit-x86-Systemen; Unterstützung für 32-Bit-x86-Systeme ist mittlerweile aber in Aussicht. Maßnahmen gegen die erste der beiden Spectre-Varianten sollen erst in 4.16 einfließen. Gegen die zweite Variante versucht Linux sich mit Retpoline (Return Trampoline) zu schützen, das einen recht geringen Performance-Overhead aufweisen soll. Der Schutz greift aber erst so richtig, wenn man Kernel und Software mit Retpoline-tauglichen Compilern übersetzt. Über Dateien in /sys/devices/system/cpu/vulnerabilities/ kann man nachsehen, für welche der drei Lücken der eingesetzte Prozessor anfällig ist, und wie der Kernel davor zu schützen versucht.

Linux 4.15 versucht mit PTI und Retpoline vor Meltdown und der zweiten Spectre-Variante zu schützen. Über weitere Gegenmaßnahmen wird noch debattiert.

Ausgestanden ist das Ganze noch nicht, denn die Kernel-Entwickler debattieren weiter über Gegenmaßnahmen. So ist nach wie vor unklar, ob Retpoline auf Intels neuesten CPU-Generationen ausreichend schützt; einige Entwickler drängen daher, für Skylake-Prozessoren und ihre Nachfolger eine Gegenmaßnahme einzubauen, die auf die Schutzfunktionen in Intels neuem Microcode zurückgreift. Auch zur sicheren Virtualisierung sind noch Änderungen nötig, die neuen Microcode voraussetzen.

Altes Stromsparproblem

Eine kleine Änderung an den ATA-Treibern von 4.15 hat indes das Potenzial, die Akkulaufzeit Millionen moderner Linux-Notebooks signifikant zu steigern. Das Ganze betrifft die meisten der in den letzten sechs bis sieben Jahren verkauften PCs und Notebooks, die einen Intel-Prozessor und per SATA angesprochene Datenträger kombinieren. Bei diesen Geräten lassen der Linux-Kernel und die meisten Distributionen das AHCI Link Power Management (ALPM) ungenutzt, weil die Stromspartechnik laut einigen Linux-Anwendern zu Datenfehlern oder Abstürzen führt.

Linux 4.15 verspricht, das mit einem neuen Modus zu vermeiden, der die ALPM-Parameter im AHCI-Controller genauso setzt, wie es der Windows-Treiber für Intel Rapid Storage Technology (IRST) macht. Ein Fedora-Entwickler hat diesen Modus nachgerüstet. Das derzeit vorbereitete Fedora 28 soll ihn standardmäßig nutzen. Andere Distributionen dürften folgen, wenn dieser Feldtest gut verläuft. ALPM spart im Leerlauf oft rund ein Watt, was die Akkulaufzeit sparsamer Notebooks schnell mal um eine halbe oder ganze Stunde verlängern kann. Für Anwender, die ALPM bereits jetzt manuell aktivieren, ändert sich aber nichts.

AMD am Ziel

AMD hat einen Meilenstein geschafft: Rund zehn Jahre, nachdem das Unternehmen ein verstärktes Engagement für quelloffene Linux-Treiber verkündet hat, unterstützen diese jetzt erstmals alle aktuellen Grafikprozessoren in einer viele Anwender zufriedenstellenden Weise. Der letzte Baustein dazu war die Aufnahme einer anfangs DAL (Display Abstraction Layer) und mittlerweile DC (Display Core) genannten Serie von Änderungen in Linux 4.15.

Durch DC unterstützt Linux die seit Juli 2017 verkauften Radeon-Grafikkarten mit Vega-GPUs jetzt nicht mehr nur rudimentär, sondern ordentlich. Das gleiche gilt für die Raven-GPU, die in mit Grafiken ausgestatteten Ryzen-Prozessoren steckt. Zusammen mit dem OpenGL-Treiber von Mesa 17.3 liefern diese Grafikchips respektable 3D-Performance, die sich vor AMDs proprietären Treibern nicht zu verstecken braucht.

Damit nicht genug: Bei einigen älteren Radeon-Karten lassen sich durch DC nun einige bislang brachliegende Techniken zur Monitoransteuerung verwenden. Dazu zählen HDMI 2.0 und DisplayPort (DP) 1.4, das zur Ansteuerung von 4K- und 5K-Bildschirmen wichtig ist; außerdem unterstützt der Treiber bei mehr Grafikkarten die Audio-Ausgabe via HDMI und DP. Um diese Funktionen bei Radeon-500er-Grafikkarten und ihren direkten Vorgängern nutzen zu können, muss man den Kernel allerdings mit dem Parameter amdgpu.dc=1 starten; dieser Schönheitsfehler soll in einigen Monaten aber verschwinden.

Support für VR-Brillen

Die neue „DRM_Object Lease Infrastructure“ verspricht bessere Unterstützung für Head-Mounted Displays. Display-Server können damit die Kontrolle über Teilfunktionen der Grafikhardware an VR-Software überstellen. Letztere kann die Ressourcen so frei nutzen, was Gerangel mit Software vermeidet, die die Bedienoberfläche auf den Monitor zaubert. Letztlich ist der Ansatz somit eine Umgehungsstraße für X-Server & Co., die bei der Ansteuerung von VR-Brillen ohnehin mehr im Weg denn Hilfe sind.

Apropos VR: Einige Valve-Entwickler haben Änderungen zum Amdgpu-Treiber beigesteuert, um den Einsatz von VR-Brillen mit Radeon-GPUs zu optimieren. Das gelingt mit einem Prioritäten-Schema, mit denen VR-Software die für sie nötigen Berechnungen als wichtiger kennzeichnen kann. Die GPU kann sie so bevorzugt ausführen, was Ruckler und andere zu Unwohlsein führende Faktoren reduzieren soll.

Der Kernel bringt jetzt auch einen Bildschirmtreiber für das Raspberry Pi 7-inch Touchscreen Panel mit, das die RaspberryPi Foundation selbst bewirbt. Intels Grafiktreiber unterstützt Core-i-8000er-Prozessoren jetzt auch ohne dass man den Kernel mit dem Parameter i915.alpha_support=1 startet.

Dateisysteme

Umfangreiche Umbauten am XFS-Code versprechen die Performance der Dateisysteme zu verbessern, die das heute typischerweise genutzte Metadatenformat von XFS nutzen. Die Entwickler haben zudem Code zum „Online Scrub and Repair“ eingebaut, der XFS-Dateisysteme zukünftig im Betrieb (also ohne umount) prüfen und reparieren kann; das Ganze ist aber noch nicht fertig und funktioniert ohnehin nur mit dem noch unfertigen und seit 4.8 entwickelten Metadatenformat, mit dem XFS einige von Btrfs und ZFS bekannte Features lernen soll.

Das Ext4-Dateisystem unterstützt eine Größenänderung zur Laufzeit (Online Resizing) jetzt auch mit Dateisystemen, die das bei Linux 3.2 eingeführte Big Allocation Blocks (Bigalloc) verwenden. Der bei Linux 4.1 integrierte Cluster-Support im via Mdadm konfigurierten MD-Subsystem gilt jetzt nicht mehr als experimentell.

Die neue, seit Jahren entwickelte Infrastruktur zum Regeln des Ressourcenverbrauchs kann endlich durchstarten: Linux 4.15 bringt endlich einen Cgroup v2 Controller, der die CPU-Zeit limitiert, die einer Control Group (Cgroup) zugeordnete Prozesse verwenden dürfen. Es war der letzte der etwa beim Betrieb von VMs oder Containern oft genutzten Controller-Arten, der dem Cgroup-Interface der zweiten Generation noch fehlte.

Offene Prozessorarchitektur

Linux unterstützt jetzt die Prozessorarchitektur RISC-V. Noch bringt der Support für die offene und von vielen Firmen vorangetriebene ISA (Instruction Set Architecture) aber nicht viel, weil zum Praxiseinsatz nötige Treiber erst bei 4.16 folgen sollen.

Der Hardware-Monitoring-Treiber K10temp kann nun auch die Prozessortemperatur von Ryzen und anderen AMD-Prozessoren mit Zen-Architektur auslesen. Die Audio-Treiber des Kernels wissen jetzt die Sound-Hardware der mit Grafiken ausgestatteten Ryzen-CPUs zu nutzen. Die Kernel-Entwickler haben zudem den Support für Intel-WLAN-Chips verbessert, die zur Wireless-9000er-Serie gehören; dabei handelt es sich um 802.11ac-Chips, die sich häufiger in brandneuen Notebook-Modellen mit Core-i-8000-CPUs finden.

Statement gegen proprietäre Treiber

Die Kernel-Dokumentation enthält nun eine Stellungnahme, mit der sich einige Entwickler des Linux-Kernels klar gegen proprietäre Linux-Treiber aussprechen. Ihnen zufolge seien Kernel-Module oder Treiber schädlich und unerwünscht, die Closed-Source-Code enthalten. Solche hätten sich wiederholt als nachteilig für Nutzer, Firmen und das Linux-Ökosystem erwiesen. Firmen, die Closed-Source-Module verteilen, würden ihre Kunden zwingen, zentrale Vorteile von Linux aufzugeben oder andere Anbieter zu wählen. Der Text endet mit einem Appell an Hardware-Hersteller, Linux-Nutzer mit quelloffenem Kernel-Code zu unterstützen.

Rund 175 Entwickler haben dieses Statement unterzeichnet, das seit 2008 an anderer Stelle existiert, aber stark in Vergessenheit geraten war. Zu den Unterzeichnern zählt eine Reihe zentraler Linux-Entwickler, darunter Dave Airlie, Jens Axboe, Arnd Bergmann, Mauro Carvalho Chehab, Thomas Gleixner, Takashi Iwai, Greg Kroah-Hartman, Ingo Molnar, Andrew Morton und Theodore Tso. Linus Torvalds ist allerdings nicht dabei. (thl@ct.de)