Jadro Linuxu 6.0, ktorého vydanie sa očakáva budúci pondelok, zahŕňa zmenu, ktorá rieši problémy s výkonom systémov s procesormi AMD Zen. Zistilo sa, že zdrojom poklesu výkonu bol kód pridaný pred 20 rokmi, aby vyriešil problém s hardvérom v niektorých čipových súpravách. Problém s hardvérom je už dávno vyriešený a v súčasných čipsetoch sa nevyskytuje, ale na staré riešenie problému sa zabudlo a stalo sa zdrojom zníženia výkonu systémov založených na moderných procesoroch AMD. Nové systémy na procesoroch Intel nie sú ovplyvnené starým riešením, pretože pristupujú k ACPI pomocou samostatného ovládača intel_idle a nie všeobecného ovládača processor_idle.
V marci 2002 bolo do jadra pridané riešenie na blokovanie objavenia sa chyby v čipsetoch súvisiacej s nesprávnym nastavením stavu nečinnosti v dôsledku oneskorenia spracovania signálu STPCLK#. Aby sa problém vyriešil, implementácia ACPI pridala ďalšiu inštrukciu WAIT, ktorá spomaľuje procesor, takže čipset má čas prejsť do stavu nečinnosti. Pri profilovaní pomocou inštrukcií IBS (Instruction-Based Sampling) na procesoroch AMD Zen3 sa zistilo, že procesor trávi značné množstvo času vykonávaním stubov, čo vedie k nesprávnej interpretácii stavu zaťaženia procesora a nastaveniu hlbších režimov spánku (C- State) cpuidle procesora.
Toto správanie sa odráža v zníženom výkone pri pracovnom zaťažení, ktoré sa často strieda medzi stavom nečinnosti a zaneprázdnenosti. Napríklad pri použití opravy, ktorá deaktivuje manéver bypass, sa priemerné hodnoty testu tbench zvýšia z 32191 MB/s na 33805 MB/s.
Zdroj: opennet.ru
