Los desarrolladores han resuelto una regresión de rendimiento en el asignador Slab del kernel de Linux 6.19, que ralentizaba la carga de módulos debido a alteraciones en las políticas NUMA. El problema, identificado mediante benchmarking, afectaba la eficiencia en la gestión de memoria en sistemas de muchos núcleos. La corrección restaura el comportamiento correcto de asignación y se ha fusionado en el kernel principal.
El asignador Slab del kernel de Linux, responsable de gestionar pequeñas asignaciones de memoria, sufrió una regresión durante los preparativos para la versión 6.19. Cambios destinados a optimizar asignaciones grandes interrumpieron inadvertidamente las políticas de Acceso No Uniforme a la Memoria (NUMA), lo que provocó selecciones de nodos subóptimas y operaciones más lentas.
Las pruebas del kernel revelaron impactos significativos, con tiempos de carga de módulos que aumentaron hasta un 60 % en algunos casos. Esto fue especialmente evidente en procesadores de muchos núcleos como el AMD Ryzen Threadripper, donde los benchmarks mostraron tiempos de compilación del kernel un 3-5 % más lentos y retrasos en multitarea. Michael Larabel de Phoronix realizó búsquedas binarias para identificar el problema, relacionándolo con cuestiones del programador que agravaban las ineficiencias de Slab.
La regresión se originó en un commit que priorizaba nodos locales sobre políticas específicas de tareas en el código de Slab. Un parche, documentado en los Archivos del Kernel de Linux, restablece el soporte NUMA original para operaciones kmalloc grandes sin introducir nuevas vulnerabilidades. El colaborador del kernel Linus Torvalds enfatizó la importancia de correcciones rápidas durante la ventana de fusión para mantener la estabilidad.
La respuesta de la comunidad fue rápida, con solicitudes de pull enviadas a la lista de correo del kernel. La corrección, elaborada por desarrolladores del kernel, se centra en los caminos de asignación para respetar las políticas previstas e integrada en la rama principal para la versión estable 6.19. Esto se alinea con los esfuerzos continuos por equilibrar rendimiento y fiabilidad ante las demandas de cargas de trabajo en la nube y de IA.
Kernels anteriores, como el 6.18, incluían optimizaciones como una mejor gestión de E/S en Btrfs y XFS, con ganancias de hasta el 20 % en operaciones del sistema de archivos. La corrección de Slab garantiza que estos beneficios no se vean comprometidos, especialmente en entornos intensivos en memoria como servidores de bases de datos y contenedores. Retroportes a ramas de soporte a largo plazo, incluida la 6.18, proporcionan estabilidad para sistemas de producción.