Atopouse un parche esquecido no núcleo de Linux que afecta o rendemento das CPU AMD

O núcleo de Linux 6.0, que se espera que se publique o vindeiro luns, inclúe un cambio que aborda os problemas de rendemento cos sistemas que se executan en procesadores AMD Zen. Descubriuse que a fonte da caída de rendemento foi o código engadido hai 20 anos para solucionar un problema de hardware nalgúns chipsets. O problema de hardware foi solucionado durante moito tempo e non aparece nos chipsets actuais, pero a antiga solución para o problema foi esquecida e converteuse nunha fonte de degradación do rendemento nos sistemas baseados en CPU AMD modernas. Os novos sistemas das CPU Intel non se ven afectados pola antiga solución alternativa, xa que acceden a ACPI mediante un controlador intel_idle separado, e non o controlador xeral processor_idle.

En marzo de 2002 engadiuse unha solución alternativa ao núcleo para bloquear a aparición dun erro nos chipsets asociado a non establecer correctamente o estado inactivo debido a un atraso no procesamento do sinal STPCLK#. Para solucionar o problema, a implementación de ACPI engadiu unha instrución adicional WAIT, que ralentiza o procesador para que o chipset teña tempo para entrar nun estado inactivo. Ao realizar un perfil usando instrucións IBS (Mostraxe baseada en instrucións) nos procesadores AMD Zen3, descubriuse que o procesador gasta unha cantidade significativa de tempo executando stubs, o que leva a unha interpretación incorrecta do estado de carga do procesador e a configuración de modos de sono máis profundos (C- State) polo cpuidle do procesador.

Este comportamento reflíctese nun rendemento reducido baixo cargas de traballo que alternan frecuentemente entre estados inactivo e ocupado. Por exemplo, cando se usa un parche que desactiva a manobra de derivación, as medias das probas de banco aumentan de 32191 MB/s a 33805 MB/s.

Fonte: opennet.ru

Engadir un comentario