Intel quiere mejorar aún más el rendimiento de Linux sobre Alder Lake
La generación Alder Lake de procesadores Intel introdujo un cambio radical que no sentó nada bien a Linux. Para los que anden perdidos, Alder Lake estrenó una arquitectura híbrida que ha mezclado núcleos de alto y bajo rendimiento en un mismo encapsulado. El gigante del chip centró su trabajo en Windows y dejó a Linux como segundo plato, lo que hizo que el sistema de Microsoft se mostrara claramente superior en las comparativas iniciales sobre Alder Lake.
La noticia, obviamente, no pasó inadvertida para los desarrolladores del kernel Linux, que se pusieron manos a las obra para al menos recortar la diferencia. El primer golpe se dio con Linux 5.16, que incluyó un parche que mejoró bastante el rendimiento gracias a un uso más inteligente de los núcleos de alto rendimiento. La situación mejoró un poco más en Linux 5.18, aunque sin terminar de superar a Windows, con la introducción de características y soporte para tecnologías incluidas específicamente para Alder Lake.
Muchos meses después del lanzamiento de los procesadores Alder Lake, Intel sigue contribuyendo en Linux para mejorar el desempeño. Ricardo Neri, ingeniero de Intel dedicado a Linux, ha presentado un nuevo parche que presuntamente mejora la planificación de las tareas entre los núcleos P (alto rendimiento) y los E (bajo rendimiento).
Neri ha explicado que “los procesadores Intel que soportan Intel Turbo Boost Max 3.0 usan ‘asym_packing’ para asignar prioridades más altas a las CPU con frecuencias más altas. Sin embargo, asigna artificialmente una prioridad más baja a los hermanos SMT con números más altos para garantizar que se utilicen en último lugar. Esto da como resultado migraciones de tareas innecesarias dentro de los dominios SMT.”
“En los procesadores con una combinación de núcleos SMT de frecuencia más alta (los núcleos P) y núcleos que no son SMT de frecuencia más baja (los núcleos E), una CPU de menor prioridad extrae las tareas de los núcleos de mayor prioridad si hay más de un hermano SMT ocupado.”
“No utilice prioridades diferentes para cada hermano SMT. En su lugar, modifique el equilibrador de carga ‘asym_packing’ para que reconozca los núcleos SMT con más de un hermano ocupado y permita que las CPU de menor prioridad realicen tareas. La eliminación de estas prioridades artificiales evita migraciones superfluas y permite que los núcleos de menor prioridad inspeccionen todos los hermanos SMT en busca de la cola más ocupada”.
A pesar de su condición de ingeniero, la explicación de Neri es lo suficientemente simple como para entender que el propósito del parche es hacer un uso más inteligente de los núcleos de bajo y alto rendimiento a la hora gestionar las tareas, haciendo que los núcleos de bajo rendimiento tengan más participación cuando se detecta uno de alto rendimiento que está ocupado. La consecuencia esperada de la aplicación del parche es que Linux sea capaz de aprovechar mejor los procesadores Alder Lake y posiblemente también los futuros Raptor Lake.
Que Intel contribuya directamente a Linux no es ninguna noticia, ya que desde hace muchísimo tiempo es uno de los contribuidores top del kernel. Dicho de otra forma, Intel tiene mucho peso dentro del desarrollo de Linux, aunque la relación con el núcleo duro de los desarrolladores del kernel no siempre ha sido idílica.