Patch uitat găsit în nucleul Linux care afectează performanța procesorului AMD

Nucleul Linux 6.0, care urmează să fie lansat luni viitoare, include o modificare care abordează problemele de performanță ale sistemelor care rulează pe procesoare AMD Zen. S-a descoperit că sursa scăderii performanței este codul adăugat acum 20 de ani pentru a rezolva o problemă hardware în unele chipset-uri. Problema hardware a fost remediată de mult și nu apare în chipset-urile actuale, dar vechea soluție a problemei a fost uitată și a devenit o sursă de degradare a performanței pe sistemele bazate pe procesoarele AMD moderne. Noile sisteme de pe procesoarele Intel nu sunt afectate de vechea soluție, deoarece accesează ACPI folosind un driver intel_idle separat, și nu driverul general procesor_idle.

O soluție a fost adăugată la kernel în martie 2002 pentru a bloca apariția unei erori în chipset-urile asociate cu setarea necorespunzătoare a stării inactiv din cauza întârzierii procesării semnalului STPCLK#. Pentru a rezolva problema, implementarea ACPI a adăugat o instrucțiune suplimentară WAIT, care încetinește procesorul, astfel încât chipset-ul să aibă timp să intre într-o stare inactiv. La profilarea utilizând instrucțiuni IBS (Instruction-Based Sampling) pe procesoarele AMD Zen3, s-a descoperit că procesorul petrece o cantitate semnificativă de timp executând stub-uri, ceea ce duce la o interpretare incorectă a stării de încărcare a procesorului și la setarea unor moduri de somn mai profunde (C- Stare) de către CPU-ul procesorului.

Acest comportament se reflectă în performanța redusă la sarcini de lucru care alternează frecvent între stările inactiv și ocupate. De exemplu, atunci când utilizați un patch care dezactivează manevra de ocolire, mediile testului tbench cresc de la 32191 MB/s la 33805 MB/s.

Sursa: opennet.ru

Adauga un comentariu