Linux kodolā tika atrasts aizmirsts ielāps, kas ietekmē AMD centrālo procesoru veiktspēju

Linux 6.0 kodols, kuru paredzēts izlaist nākamajā pirmdienā, ietver izmaiņas, kas risina veiktspējas problēmas sistēmās, kas darbojas ar AMD Zen procesoriem. Tika konstatēts, ka veiktspējas krituma avots ir kods, kas pievienots pirms 20 gadiem, lai novērstu aparatūras problēmu dažās mikroshēmojumos. Aparatūras problēma jau sen ir novērsta un neparādās pašreizējās mikroshēmojumos, taču vecais problēmas risinājums ir aizmirsts un ir kļuvis par veiktspējas pasliktināšanās avotu sistēmās, kuru pamatā ir moderni AMD CPU. Vecais risinājums neietekmē jaunās Intel centrālo procesoru sistēmas, jo tās piekļūst ACPI, izmantojot atsevišķu draiveri intel_idle, nevis vispārējo procesora_idle draiveri.

2002. gada martā kodolam tika pievienots risinājums, lai bloķētu kļūdu parādīšanos mikroshēmojumos, kas saistīti ar nepareizu dīkstāves stāvokļa iestatīšanu STPCLK# signāla apstrādes aizkavēšanās dēļ. Lai novērstu problēmu, ACPI ieviešana pievienoja papildu norādījumu WAIT, kas palēnina procesora darbību, lai mikroshēmojumam būtu laiks pāriet dīkstāves stāvoklī. Profilējot, izmantojot IBS (Instruction-Based Sampling) instrukcijas AMD Zen3 procesoros, tika atklāts, ka procesors pavada ievērojamu laiku, izpildot stubs, kas noved pie nepareizas procesora slodzes stāvokļa interpretācijas un dziļāku miega režīmu iestatīšanas (C- State) ar procesora cpuidle.

Šī darbība izpaužas kā samazināta veiktspēja darba slodzēs, kas bieži mainās starp dīkstāves un aizņemtības stāvokļiem. Piemēram, izmantojot ielāpu, kas atspējo apvedceļa manevru, tbench testa vidējie rādītāji palielinās no 32191 MB/s līdz 33805 MB/s.

Avots: opennet.ru

Pievieno komentāru