Conecta con nosotros

Noticias

Un parche introducido en Linux hace 20 años reduce el rendimiento en AMD Ryzen

Publicado

el

AMD Linux

AMD no tiene ni de lejos la trayectoria y la implicación de Intel a la hora de contribuir a Linux. Eso se nota en aspectos como ciertos bugs en las dos primeras generaciones de Ryzen que se han quedado sin resolver debido a que la compañía decidió no involucrarse y se limitó a decir que podían ser solucionados con software. Esta falta de costumbre a la hora de cuidar su soporte para Linux también queda patente en una solución para chipsets de hace 20 años que está impactando negativamente en el desempeño de los procesadores basados en la arquitectura Zen (o al menos Zen 3).

El fallo procedente de la solución para chipsets de hace 20 años fue descubierto por K Prateek Nayak, un ingeniero de AMD. Siendo más concretos, el origen está en la inclusión del soporte de ACPI en Linux hace 20 años, cuando se tuvo introducir una “operación de espera ficticia” para tratar con algunos chipsets en los que la señal STPCLK# (detención del reloj) no es confirmada a tiempo. La operación de espera consiste en una lectura de entrada-salida ficticia que retrasa el procesamiento de las instrucciones adicionales hasta que el procesador se detiene por completo.

El problema parcheado en el año 2002 fue detectado en algunos sistemas AMD Athlon con chipsets de VIA, sin embargo, no se tiene constancia que esté presente en chipsets y configuraciones más recientes, así que, según explica K Prateek Nayak, “el muestreo de ciertas cargas de trabajo con IBS (Muestreo Basado en Instrucciones) en el sistema AMD Zen 3 muestra que se dedica una cantidad significativa de tiempo a la operación ficticia, que se contabiliza incorrectamente como residencia de C-State (estados en los que la CPU ha reducido o desactivado funciones seleccionadas).”

“Un valor de residencia de C-State grande puede hacer que el gobernador de ‘cpuidle’ recomiende un C-State más profundo durante las instancias inactivas subsiguientes, lo que inicia un círculo vicioso que conduce a una degradación del rendimiento en las cargas de trabajo que cambian rápidamente entre las fases ocupada e inactiva”.

Dave Hansen, ingeniero de Intel que contribuye a Linux, ha modificado el parche introducido hace 20 años para que se accione solamente en sistemas antiguos que los requieran, evitando así perjudicar a procesadores más recientes. La modificación ya ha sido fusionada en Linux 6.0, así que los usuarios de distribuciones bleeding edge como Arch Linux, Gentoo Fedora y openSUSE Tumbleeweed y MicroOS deberían de recibirlo dentro de poco. También es de esperar que compañías como Red Hat, SUSE y Canonical (Ubuntu) la porten hacia sus implementaciones del kernel y que sea portada hacia atrás para su introducción al menos en Linux 5.15, por ahora el último lanzamiento LTS.

Por suerte, el error ha sido solucionado y la corrección debería de ir llegando a los usuarios poco a poco en los sistemas soportados mediante una actualización estándar.

Apasionado del software en general y de Linux en particular. El Open Source, la multiplataforma y la seguridad son mis especialidades.

Lo más leído