V linuxovém jádře byla nalezena zapomenutá záplata, která ovlivňuje výkon procesorů AMD

Linuxové jádro 6.0, jehož vydání se očekává příští pondělí, zahrnuje změnu, která řeší problémy s výkonem u systémů běžících na procesorech AMD Zen. Bylo zjištěno, že zdrojem poklesu výkonu je kód přidaný před 20 lety, aby se vyřešil problém s hardwarem v některých čipových sadách. Hardwarový problém byl již dávno vyřešen a v současných čipových sadách se neobjevuje, ale staré řešení problému bylo zapomenuto a stalo se zdrojem degradace výkonu na systémech založených na moderních CPU AMD. Nové systémy na procesorech Intel nejsou starým řešením ovlivněny, protože přistupují k ACPI pomocí samostatného ovladače intel_idle, nikoli obecného ovladače processor_idle.

V březnu 2002 bylo do jádra přidáno řešení, které blokovalo výskyt chyby v čipových sadách související s nesprávným nastavením klidového stavu kvůli zpoždění ve zpracování signálu STPCLK#. Aby se tento problém vyřešil, implementace ACPI přidala další instrukci WAIT, která zpomaluje procesor, takže čipová sada má čas přejít do klidového stavu. Při profilování pomocí instrukcí IBS (Instruction-Based Sampling) na procesorech AMD Zen3 bylo zjištěno, že procesor tráví značné množství času prováděním stubů, což vede k nesprávné interpretaci stavu zatížení procesoru a nastavení hlubších režimů spánku (C- State) cpuidle procesoru.

Toto chování se projevuje sníženým výkonem při pracovní zátěži, která často střídá stavy nečinnosti a zaneprázdnění. Například při použití opravy, která deaktivuje manévr bypass, se průměrné hodnoty testu tbench zvýší z 32191 MB/s na 33805 MB/s.

Zdroj: opennet.ru

Přidat komentář