Uralter Linux-Patch bremst AMD Ryzen und Epyc

Ein Workaround im Linux-Kernel, der einen (ACPI)-Bug 20 Jahre alter Athlons korrigiert, kann Datentransferraten reduzieren.

In Pocket speichern vorlesen Druckansicht 6 Kommentare lesen

AMD Epyc und Athlon

(Bild: Christof Windeck/c’t)

Lesezeit: 1 Min.

Ein Software-Entwickler von AMD hat einen Linux-Kernelpatch bereitgestellt, der eine Altlast beseitigt: Warteschleifen beim Wechsel in die ACPI-Stromsparmodi C2 und C3. Diese "Dummy OPs" bremsen aktuelle AMD-Prozessoren unter Linux bei bestimmten Datenübertragungen aus.

Die "Dummy OP"-Warteschleifen waren im März 2002 in Kerneltreiber für die Energieverwaltung per ACPI eingebaut worden, um manche Athlon-Rechner sparsamer zu machen. Denn seinerzeit hatte der AMD Athlon im Verbund mit manchen (VIA-)Chipsätzen einen Bug: Das STPCLK#-Signal, welches das Abschalten des Taktsignals steuert, funktionierte nicht wie erwartet. Die zusätzlichen "Dummy OP"-Zugriffe vertrödelten daher etwas Zeit, bis das System sicher in den tieferen Schlafmodus wechseln konnte. Um trotz der Athlon-Schlafstörung Strom zu sparen und Abwärme zu reduzieren, kamen 2001 auch zusätzliche Software-Tools unter Windows und Linux zum Einsatz.

Offenbar geriet der Linux-Patch jedoch in Vergessenheit; schon 2006 beschwerte sich jemand über mangelnde Dokumentation. Nun hat der Programmierer K Prateek Nayak einen neuen Patch eingereicht, der den alten bei neuen AMD-Prozessoren abschaltet. Am Beispiel des Benchmarks "tbench" zeigt er, dass die Dummy-OPs die Datentransferrate enorm reduzieren können, allerdings glücklicherweise nur in Sonderfällen: Nämlich dann, wenn der Prozessor aus einem Schlafzustand aufwachen muss, um eine Aufgaben beim Datentransfer zu erledigen.

Laut der Website Phoronix soll der neue Patch für drivers/acpi/processor_idle.c noch mit der Kernelversion 6.0 kommen.

(ciw)