Linux 5.2 freigegeben: Änderungsrekord und Geschwindigkeitsverbesserungen
Seite 3: Entwicklerdateien auf Abruf; neue Grafiktreiber; Geschwindigkeit zurückgewinnen
Entwicklerdateien per Modul auf Abruf
Linux kann über die Datei /proc/kheaders.tar.xz
jetzt eine Reihe von Entwicklerdateien bereitstellen, die man für Kernel-nahe Tätigkeiten gelegentlich braucht – etwa zur Ablaufverfolgung (Tracing) oder zum nachträglichen Kompilieren von Kernel-Modulen. Die Datei mit Header- und Devel-Dateien wird dabei von einem vergleichsweise großen Modul bereitgestellt, das sich bei Bedarf aber laden und später wieder entladen lässt.
Laut dem zuständigen Entwickler ist dieser Ansatz für Android und andere Embedded Systems gedacht: Dort ist es unüblich, diese Entwicklerdateien mit dem Root-Dateisystem auszuliefern, wie es Linux-Distributionen für PCs typischerweise machen. Abzuwarten bleibt, ob Distributoren das neue Feature in ihren Kernel-Images aktivieren werden.
Auslastung besser im Blick halten
Mithilfe des von Google-Mitarbeitern eingebrachten PSI Monitors (u. a. 1, 2) können Überwachungsprogramme jetzt innerhalb von Millisekunden und ohne viel Overhead von drohender oder akuter Überlastung erfahren. Solche Tools können früher Maßnahmen ergreifen und notfalls Programme beenden – etwa wenn ein Hintergrundprozess den Arbeitsspeicher übermäßig belastet und so die Desktop-Oberfläche oder ein Vordergrundprogramm spürbar verlangsamt.
Google will das Feature bei Android nutzen. Einige Hintergründe zum Ansatz erläutert der LWN.net-Artikel "Pressure stall monitors". Die neue Technik erweitert das bei Linux 4.20 integrierten PSI (Pressure-Stall Information), mit dem Administratoren deutlich leichter als bei /proc/loadavg
erkennen können, wie stark und wodurch ein System ausgelastet is.
Treiber für zahlreiche neue Grafikprozessoren von Intel
Der Kernel-Grafiktreiber i915 unterstützt jetzt die GPU von Intel-Prozessoren mit dem Codenamen "Ice Lake". Zu ihr gehören etwa die ersten Core-i-CPUs der zehnten Generation, die Intel kürzlich vorgestellt hat und die für flache Notebooks ausgelegt sind. Diese 10-nm-Prozessoren sind die ersten, in denen Intels Grafikprozessor der elften Generation sitzt. Support für solche Gen11-GPUs steckt auch schon in den Vorgängern von Linux 5.2 – er gilt dort aber als unvollständig, daher muss man ihn über den Kernel-Startparameter i915.alpha_support=1
explizit aktivieren. OpenGL- und Vulkan-Treiber für diese Chips bringt das im Juni erwartete Mesa 19.1.
Der neue Kernel unterstützt auch schon die GPUs der noch nicht erhältlichen Intel-Platform "Elkhart Lake (EHL)", die wie Ice Lake eine Gen11-GPU enthält, aber auf Embedded-Prozessoren (Atom) und Billig-CPUs (Atom-Celerons) zielt. Ferner weiß der Kernel jetzt auch den Grafikprozessor von CPUs der "Comet Lake"-Generation inklusive ihres Platform Controller Hubs (PCH) anzusprechen. Auch sie sind noch nicht erhältlich und für Desktop-PCs und leistungsstärkste Notebooks gedacht. Weitere Details zu den Einsatzgebieten von diesen und weiteren jüngst eingeführten oder bald erwarteten Prozessoren liefert der kürzlich auf c't online veröffentlichte Text "Prozessorfahrpläne von AMD und Intel".
Endlich offene Treiber für verbreitete Mali-Grafikkerne von ARM
Für die verbreiteten ARM-GPUs der Mali-Reihe bringt der Direct Rendering Manager (DRM) des Kernels jetzt die Grafiktreiber Lima und Panfrost mit. Auf ihnen bauen gleichnamige OpenGL-Treiber zur 3D-Beschleunigung auf, die zu den wichtigsten Neuerungen des kürzlich veröffentlichten Mesa 19.1 gehören. Über diese Treiber lässt sich die 3D-Beschleunigung der meisten von ARM entwickelten Mali-GPUs nutzen, die diverse Hersteller in System-on-a-Chip-Bausteinen (SOCs) in Android-Geräten, Chromebooks, Embedded Systems oder Einplatinensystemen (Single Board Computer/SBCs) einsetzen.
Das Duo aus Lima-DRM-Treiber und Lima-OpenGL-Treiber unterstützt dabei "Utgard"-GPUs der Mali-400er-Serie. Das Panfrost-Duo hingegen spricht die neueren Mali-Generationen "Midgard" und "Bifrost" an, die unter den Mali-Modellbezeichnungen T6xx, T7xx, T8xx respektive G3x, G5x, G7x segeln.
Viele Treiber für einen Chip
Die in Linux 5.2 enthaltenen Kernel-Treiber Lima und Panfrost stellen DRM Render Nodes bereit, mit denen die gleichnamigen OpenGL-Treiber von Mesa 19.1 die 3D-Beschleunigung vieler Mali-Kerne nutzen können. Mit der Monitoransteuerung haben Lima und Panfrost allerdings nichts zu tun: Anders als bei x86-PCs sind Display Engine, 3D-Einheiten und Video-Beschleuniger bei SoCs nicht Teil eines mächtigen Grafikchipdesigns; vielmehr kümmern sich separate Komponenten um diese drei Funktionen, die SoC-Hersteller als IP-Cores von einem oder unterschiedlichen Unternehmen zukaufen und kombinieren.
Neben Lima oder Panfrost ist daher ein weiterer Kernel-Treiber für die Display Engine nötig, die den Bildschirm ansteuert (und sich oft abermals aus verschiedenen IP-Cores zusammensetzt). Solche zumeist Kernel-based Mode-setting (KMS) bietenden Treiber gibt es aber für die meisten SoCs mit Mali-GPUs; typischerweise sind sie auch Open-Source-Software und bereits in Linux enthalten. Für Video-Beschleuniger bedarf es ähnlich wie bei 3D eigener Treiber sowohl im Kernel als auch im Userspace.
ARM half nicht, erwägt aber, sich einzubringen
An der Entwicklung von Lima und Panfrost hat sich ARM nicht beteiligt, obwohl die Firma in nahezu allen anderen Bereichen eigenhändig für ordentliche Linux-Unterstützung ihrer Hardware-Designs sorgt. Die zwei neuen Treiber-Duos entstanden daher weitgehend mithilfe von Reverse Engineering, indem unabhängige Entwickler das Verhalten von Hardware mit anderen, teilweise proprietären Treibern analysiert haben. So konnten sie alle zur Treiberprogrammierung benötigten Informationen zusammenkratzen, denn ARM stellt diese nicht bereit. Durch diesen Entwicklungsansatz beherrschen die beiden Treiber-Duos allerdings nur einen Teil der Funktionen, die die Hardware bietet. Außerdem unterstützen die Treiber längst nicht alle Grafikkerne der erwähnten Serien; Panfrost wurde beispielsweise nur auf den Midgard-GPUs T760 und T860 getestet.
Vermutlich stehen deshalb noch etliche Probleme und Stolpersteine mit den DRM- und OpenGL-Treibern an. Die Aufnahme der Treiber in Linux und Mesa hat erfahrungsgemäß aber starke Signalwirkungen, durch die sich mehr Tester und Entwickler auf die Treiber stürzen – das dürfte der Treiberqualität und dem Umfang der Hardware-Unterstützung einen ordentlichen Schub gehen.
ARM beobachtet die Entwicklung genau und erwägt offenbar, sich zumindest bei den Kernel-Treibern einzubringen. Offenbar gibt es zudem ARM-Entwickler, die das Unternehmen intern drängen, sich stärker zu engagieren. Das zeigt sich etwa im Zeitabschnitt 23:23 bis 28:44 eines Videos einer jüngst abgehaltenen Linaro-Konferenz, wo der angesehene und neuerdings bei ARM arbeitenden Linux-Entwickler Grant Likely einige diesbezügliche Andeutungen macht.
Performance zurückgewinnen: Gegenmaßnahmen für Prozessorlücken lahmlegen
Sie wollen auf ihrem PC das Maximum an Geschwindigkeit herauskitzeln und fürchten sich nicht vor den ganzen Sicherheitslücken moderner Hauptprozessoren, die seit Anfang 2018 publik wurden? Dann starten Sie den Kernel fortan mit dem neuen Parameter mitigations=off
, denn der deaktiviert die vielen Schutztechniken, die der Kernel für diese Lücken erhalten hat und standardmäßig nutzt. Wie stark das die Performance steigert, hängt von Prozessor und der eingesetzten Software ab: Die Gegenmaßnahmen machen manche Workloads deutlich langsamer, andere nur minimal.
Unterstützung für diesen Parameter wurde in den Hauptentwicklerzweig integriert, als dort im "Merge Window" gerade das Gros der Änderungen für Linux 5.2 zusammengetragen wurde (u. a. 1, 2, 3). Ein paar Tage später flossen dort auch die Gegenmaßnahmen ein, die vor "ZombieLoad" und anderen als MDS (Microarchitectural Data Sampling) klassifizierten Lücken schützen, die im Mai publik wurden.
Neuer Parameter kann Sicherheit auch verbessern
Diese Schutztechniken und Support für den Mitigations-Parameter wurden aber am selben Abend in die Linux-Versionen 5.1.2, 5.0.16, 4.19.43, 4.9.176 und 4.14.119 zurückportiert. Auch mit vielen Kerneln von Linux-Distributionen funktioniert der Parameter mittlerweile. Er legt neben dem MDS-Schutz unter anderem auch PTI oder Retpoline lahm, die vor Meltdown und Spectre v2 schützen. Bislang musste man jede dieser Gegenmaßnahmen mit einem eigenen Parameter individuell ausschalten. Man sollte diese Möglichkeit aber nur in Umgebungen nutzen, wo keine Gefahr droht oder diese vernachlässigbar klein ist – beispielsweise in einem Hochgeschwindigkeits-Rechenverbund (HPC-Cluster), in dem man nur hausintern erzeugte und vertrauenswürdige Programme ausführt.
Mit dem neuen Parameter kann man die Sicherheit indes auch verbessern: Durch ein mitigations=auto,nosmt
deaktiviert Linux falls nötig auch Hyper-Threading, denn das birgt bei einigen Prozessoren und Lücken zuständliches Gefahrenpotenzial. Ein solcher Schritt drückt die Performance aber noch stärker, als es die Gegenmaßnahmen ohnehin schon tun. Nach derzeit gängiger Auffassung ist das für Desktop-Systeme zu viel des Guten. Für Cloud-Provider und einige andere Einsatzgebiete kann das Deaktivieren von Hyper-Threading aber angebracht sein.