Encontraron un parche olvidado en el kernel de Linux que afecta el rendimiento de las CPU AMD

El kernel 6.0 de Linux, cuyo lanzamiento está previsto para el próximo lunes, incluye un cambio que soluciona los problemas de rendimiento de los procesadores AMD Zen. La causa de esta disminución del rendimiento fue el código añadido hace 20 años para solucionar un problema de hardware en algunos chipsets. El problema de hardware se solucionó hace tiempo y ya no aparece en los chipsets actuales, pero la antigua solución alternativa se abandonó y se ha convertido en la causa de la degradación del rendimiento en sistemas basados ​​en CPU AMD modernas. Los sistemas más nuevos con CPU Intel no se ven afectados por la antigua solución alternativa, ya que acceden a ACPI mediante un controlador intel_idle independiente, no el controlador processor_idle compartido.

En marzo de 2002, se añadió una solución alternativa al kernel para evitar un error en los chipsets relacionado con la imposibilidad de establecer correctamente el estado de inactividad debido a un retraso en el procesamiento de la señal STPCLK#. Para solucionar este problema, se añadió una instrucción WAIT a la implementación de ACPI, lo que ralentizaba el procesador para que el chipset pudiera entrar en estado de inactividad. El análisis de perfiles mediante instrucciones de Muestreo Basado en Instrucciones (IBS) en procesadores AMD Zen3 reveló que el procesador dedica un tiempo considerable a ejecutar un stub, lo que provoca una interpretación incorrecta de la carga del procesador y la configuración de modos de suspensión más profundos (estados C) por parte del controlador cpuidle.

Este comportamiento se refleja en una disminución del rendimiento en cargas de trabajo que alternan frecuentemente entre estados inactivos y ocupados. Por ejemplo, al usar un parche que deshabilita la solución alternativa, los resultados promedio de la prueba de rendimiento de tbench aumentan de 32 191 MB/s a 33 805 MB/s.

Fuente: opennet.ru

Añadir un comentario