Im Linux-Kernel wurde ein vergessenes Patch gefunden, das die CPU-Leistung von AMD beeinflusst.

Im Linux-Kernel 6.0, dessen Veröffentlichung fĂŒr nĂ€chsten Montag erwartet wird, wurde eine Änderung vorgenommen, die Leistungsprobleme bei Systemen mit AMD Zen-Prozessoren behebt. Die Ursache fĂŒr den Leistungsabfall war ein vor 20 Jahren hinzugefĂŒgter Code, der zur Umgehung eines Hardwareproblems in einigen ChipsĂ€tzen entwickelt wurde. Dieses Hardwareproblem ist lĂ€ngst behoben und tritt in aktuellen ChipsĂ€tzen nicht mehr auf, doch der alte Workaround wurde vergessen und ist zur Quelle von Leistungseinbußen bei Systemen mit modernen AMD-CPUs geworden. Neuere Systeme mit Intel-CPUs sind von dem alten Umgehungsmanöver nicht betroffen, da der Zugriff auf ACPI ĂŒber einen separaten intel_idle-Treiber und nicht ĂŒber den allgemeinen processor_idle-Treiber erfolgt.

Der Workaround wurde im MĂ€rz 2002 in den Kernel eingefĂŒgt, um ein Problem in ChipsĂ€tzen zu beheben, das durch das Fehlen einer ordnungsgemĂ€ĂŸen Idle-ZustandsĂŒberprĂŒfung aufgrund von Verzögerungen beim STPCLK#-Signal verursacht wurde. Zur Umgehung des Problems wurde in der ACPI-Implementierung eine zusĂ€tzliche WAIT-Anweisung hinzugefĂŒgt, die den Prozessor verlangsamte, damit der Chipsatz in den Idle-Zustand wechseln konnte. Bei der Profilierung mit Hilfe von IBS (Instruction-Based Sampling) auf AMD Zen3-Prozessoren wurde festgestellt, dass der Prozessor viel Zeit mit der AusfĂŒhrung einer Platzhalteranweisung verbrachte, die zu einer falschen Interpretation des Lastzustands des Prozessors und zur Festlegung tieferer SchlafzustĂ€nde (C-State) durch den cpuidle-Handler fĂŒhrte.

Dieses Verhalten fĂŒhrt zu einem RĂŒckgang der Leistung bei Belastungen, bei denen hĂ€ufig zwischen Idle- und ÜberlastzustĂ€nden gewechselt wird. Zum Beispiel steigen die durchschnittlichen Testergebnisse von tbench bei Verwendung des Patches, der den Workaround deaktiviert, von 32191 MB/s auf 33805 MB/s.

Quelle: opennet.ru

60GB SSD 8Gb DDR4