Elfelejtett javítás található a Linux kernelben, amely befolyásolja az AMD CPU teljesítményét

A várhatóan jövő hétfőn megjelenő Linux 6.0 kernel olyan változtatást tartalmaz, amely az AMD Zen processzorokon futó rendszerek teljesítményproblémáit kezeli. A teljesítménycsökkenés forrása a 20 évvel ezelőtt hozzáadott kód, amely bizonyos lapkakészletek hardverproblémáit kiküszöböli. A hardverproblémát már régóta javították, és nem jelenik meg a jelenlegi lapkakészletekben, de a probléma régi megoldását elfelejtették, és a modern AMD CPU-kon alapuló rendszerek teljesítménycsökkenésének forrásává vált. Az Intel CPU-kon lévő új rendszereket nem érinti a régi megoldás, mivel az ACPI-t külön intel_idle illesztőprogram segítségével érik el, nem pedig az általános processor_idle illesztőprogramot.

2002 márciusában egy kerülő megoldás került a kernelbe, amely megakadályozza a lapkakészletekben előforduló hibák megjelenését, amelyek az STPCLK# jel feldolgozási késedelme miatti tétlenségi állapot nem megfelelő beállításához kapcsolódnak. A probléma megkerülésére az ACPI implementáció hozzáadott egy további WAIT utasítást, amely lelassítja a processzort, így a lapkakészletnek van ideje tétlen állapotba kerülni. Az AMD Zen3 processzorok IBS (Instruction-Based Sampling) utasításaival végzett profilalkotás során kiderült, hogy a processzor jelentős időt tölt csonkok végrehajtásával, ami a processzor terhelési állapotának helytelen értelmezéséhez és mélyebb alvó üzemmódok beállításához vezet (C- állapot) a processzor cpuidle által.

Ez a viselkedés csökkent teljesítményben tükröződik olyan munkaterhelések mellett, amelyek gyakran váltakoznak tétlen és foglalt állapotok között. Például, ha olyan javítást használunk, amely letiltja a bypass manővert, a próbapadi teszt átlagai 32191 MB/s-ról 33805 MB/s-ra nőnek.

Forrás: opennet.ru

Hozzászólás