Linux-Kernel: Linux 5.17 mit neuem AMD-Powermanagement
Der neue Linux-Kernel legt beim Powermanagement fĂĽr moderne AMD-CPUs nach. Er macht anonymen Speicher bewertbar und steuert auf portables eBPF zu.

(Bild: Daniel AJ Sokolov)
Der neue Linux-Kernel 5.17 hat jĂĽngst das Licht der Welt erblickt. Der Kernel-Release war an sich bereits fĂĽr vergangene Woche geplant. Linus Torvalds entschied sich jedoch, eine Extrawoche mit einem neuen Release-Kandidaten 5.17-rc8 zum Testen zu verbringen.
Ein Grund für das Verschieben war die späte Integration von Patches gegen neue Spectre-Angriffsvarianten. Allerdings knirschte es an manch anderer Stelle noch ein wenig im Gebälk – es gab zwar keine massiven Showstopper, Torvalds wollte jedoch eine weitere Woche Tests mit echter Last in der realen Welt und nicht nur die automatisierten Tests.
Die aktualisierte Fassung des Linux-Kernels hat dabei nicht nur UnterstĂĽtzung fĂĽr neue Hardware nachgelegt. Optimierungen wie die verbesserte Energie- und Leistungssteuerung fĂĽr moderne AMD-CPUs sind fĂĽr sich genommen schon einen genaueren Blick wert.
Auch die Interna fasst das Kernel-Team an. Anonymen Speicher macht es analysierbar und zieht mit dem Schwestersystem Android gleichauf. Insbesondere VM-lastige Setups können davon erheblich profitieren. Die Portabilität von eBPF-Programmen scheint in greifbare Nähe zu rücken. Für Schleifen in eBPF liefern die Entwickler mit bpf_loops()
einen neuen Ansatz. Der extended Berkeley Packet Filter (eBPF) ermöglicht Zugriffe auf Datenpakete und -ströme etwa zur Einbruchserkennung (Intrusion Detection).
Verbesserte Leistungssteuerung
Für AMD-Prozessoren bringt der neue Kernel einen Treiber (amd-pstate) für die "Collaborative Processor Performance Control" (CPPC) mit. Dieser erlaubt eine feinere Steuerung der Leistungsaufnahme von AMD-Prozessoren. Bislang nutzte Linux zum Regeln der Leistung der aktuellen Generationen von AMD-CPUs lediglich das "Advanced Configuration and Power Interface" (ACPI). Der zugehörige Treiber acpi-cpufreq für den Industriestandard ACPI regelte die Prozessoren bislang in drei Stufen (P-States, "Performance States"). Diese P-States geben spezifische Leistungsobergrenzen für CPU-Takt- beziehungsweise -Frequenz vor. Damit lässt sich ein System in voller, abgestufter oder niedrigster Leistung betreiben. Diese Einschränkung von acpi-cpufreq gilt im Übrigen nur für AMD-Prozessoren.
amd-pstate ersetzt die P-States durch einen neuen Mechanismus mit feineren Stellschräubchen. Diese sind über das sysfs-Interface einsehbar. Aufbauend auf dem neuen Treiber können Kernel-Governors, wie schedutil oder ondemand, die Leistungsziele (Targets) und Hinweise (Hints) der CPPC-Hardware auswerten und feingranular das System regeln. Das lässt den Energieverbrauch sinken und kann auf mobilen Geräten zudem die Akkulaufzeit verlängern.
Der Treiber setzt ein AMD-System und CPPC-Hardware voraus. CPPC ist auf AMD-Prozessoren der neueren Generation beschränkt. Es findet sich jedoch auch in einigen Zen2- und Zen3-Modellen, die der neue Treiber ebenfalls unterstützt. Sollte versucht werden, auf einem inkompatiblen System amd-pstate zu starten oder kommt es zu einem Fehler, fällt der Kernel auf den acpi-cpufreq zurück und initialisiert diesen. Näheres zu amd-pstate findet sich im zugehörigen Commit und in den entpackten Kernel-Quellen in der Datei Documentation/admin-guide/pm/amd-pstate.rst.