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.

In Pocket speichern vorlesen Druckansicht 30 Kommentare lesen
Aufmacher Linux-Kernel 5.17

(Bild: Daniel AJ Sokolov)

Lesezeit: 14 Min.
Von
  • Oliver Müller
Inhaltsverzeichnis

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).

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.