Linux-ytimestä löytyi unohtunut korjaustiedosto, joka vaikuttaa AMD-suorittimen suorituskykyyn

Ensi maanantaina julkaistava Linux 6.0 -ydin sisältää muutoksen, joka korjaa AMD Zen -prosessoreilla toimivien järjestelmien suorituskykyongelmia. Suorituskyvyn heikkenemisen syyksi havaittiin 20 vuotta sitten lisätty koodi joidenkin piirisarjojen laitteisto-ongelman kiertämiseksi. Laitteisto-ongelma on korjattu pitkään, eikä se esiinny nykyisissä piirisarjoissa, mutta ongelman vanha kiertotapa on unohdettu ja siitä on tullut nykyaikaisiin AMD-suorittimiin perustuvien järjestelmien suorituskyvyn heikkenemisen lähde. Vanha kiertotapa ei vaikuta Intel-suorittimien uusiin järjestelmiin, koska ne käyttävät ACPI:tä erillisellä intel_idle-ohjaimella, eivät yleisellä processor_idle-ohjaimella.

Kerneliin lisättiin maaliskuussa 2002 kiertotapa, joka estää piirisarjoissa esiintyvän virheen, joka liittyy siihen, että lepotilaa ei asetettu oikein STPCLK#-signaalin käsittelyn viivästymisen vuoksi. Ongelman kiertämiseksi ACPI-toteutus lisäsi ylimääräisen WAIT-käskyn, joka hidastaa prosessoria niin, että piirisarja ehtii siirtyä lepotilaan. Profiloitaessa IBS (Instruction-Based Sampling) -käskyjä AMD Zen3 -suorittimissa havaittiin, että prosessori käyttää huomattavan paljon aikaa tynkien suorittamiseen, mikä johtaa virheelliseen tulkintaan prosessorin kuormitustilasta ja syvempien lepotilaiden asettamiseen (C- State) prosessorin cpuidlen toimesta.

Tämä käyttäytyminen näkyy heikentyneenä suorituskyvynä työkuormissa, jotka vaihtelevat usein lepotilan ja varatun tilan välillä. Esimerkiksi käytettäessä korjaustiedostoa, joka estää ohitusliikkeen, tbench-testin keskiarvot kasvavat 32191 Mt/s:sta 33805 Mt/s:iin.

Lähde: opennet.ru

Lisää kommentti