Zaboravljena zakrpa pronađena u jezgri Linuxa utječe na performanse AMD CPU-a

Jezgra Linuxa 6.0, za koju se očekuje da će biti objavljena sljedeći ponedjeljak, uključuje promjenu koja rješava probleme performansi sa sustavima koji rade na AMD Zen procesorima. Utvrđeno je da je izvor pada performansi kod dodan prije 20 godina kako bi se zaobišao hardverski problem u nekim skupovima čipova. Hardverski problem odavno je riješen i ne pojavljuje se u trenutnim skupovima čipova, ali staro rješenje problema je zaboravljeno i postalo je izvor degradacije performansi na sustavima temeljenim na modernim AMD CPU-ima. Na nove sustave na Intel CPU-ima ne utječe staro rješenje jer oni pristupaju ACPI-ju pomoću zasebnog upravljačkog programa intel_idle, a ne općeg upravljačkog programa processor_idle.

Zaobilazno rješenje dodano je kernelu u ožujku 2002. kako bi se blokirala pojava greške u skupovima čipova povezanih s neispravnim postavljanjem stanja mirovanja zbog kašnjenja u obradi STPCLK# signala. Kako bi se zaobišao problem, implementacija ACPI-ja dodala je dodatnu instrukciju WAIT, koja usporava procesor tako da skup čipova ima vremena prijeći u stanje mirovanja. Prilikom profiliranja korištenjem IBS (Instruction-Based Sampling) instrukcija na AMD Zen3 procesorima, otkriveno je da procesor troši značajnu količinu vremena na izvršavanje stubova, što dovodi do netočnog tumačenja stanja opterećenja procesora i postavljanja dubljih načina mirovanja (C- State) od strane procesora cpuidle.

Ovo se ponašanje odražava u smanjenoj izvedbi pod radnim opterećenjima koja se često izmjenjuju između stanja mirovanja i zauzetosti. Na primjer, kada koristite zakrpu koja onemogućuje manevar premosnice, prosjeci tbench testa povećavaju se s 32191 MB/s na 33805 MB/s.

Izvor: opennet.ru

Dodajte komentar