Kiryl Shutsemau, ingeniero de Meta, consigue mejorar el código IA creado por Linus Torvalds para el kernel de Linux

Mejora de código con IA Linus Torvalds
Mejora de código con IA Linus TorvaldsIA
Noticia
Añádenos en Google

Elígenos como tu fuente preferida en Google.

La nueva propuesta consigue que el rendimiento de la CPU se multiplique por 13, pasando de 17,2 millones de lecturas por segundo a aproximadamente 220 millones.

Kiryl Shutsemau, un ingeniero de Meta muy conocido en el mundo del desarrollo del kernel de Linux, ha publicado en la lista de correo del núcleo una mejora mediante inteligencia artificial que es capaz de multiplicar considerablemente el denominado borrador conceptual (RFC) que había presentado el propio Linus Torvalds, gracias a la utilización del asistente de IA Claude Code.

Esta mejora se basa en nada más y nada menos que 18 parches dirigidos a optimizar la gestión de memoria del sistema operativo y escribe de nuevo diferentes partes esenciales de la caché de páginas del kernel, llegando en muchos escenarios incluso a multiplicar por 13 la velocidad de lectura de archivos del sistema.

"Las lecturas pequeñas de un mismo archivo desde muchas CPU toman y liberan una referencia en el mismo folio, y su contador de referencias rebota entre las CPU", explica el desarrollador de Meta. "Esta serie permite que filemap_read() y shmem copien de la caché de páginas sin tomar una referencia. Es la RFC de Linus, reelaborada: un folio del que un lector de este pueda copiar se libera solo después de un período de gracia del RCU".

RCU, que son las siglas de Read-Copy Update funciona como una herramienta para la sincronización sin que existan bloqueos en el kernel de Linux, y tiene como objetivo la optimización del acceso a datos estructurados que se suelen leer con mucha frecuencia, pero que no se actualizan con la misma frecuencia.

"Solo los folios a los que las lecturas vuelven repetidamente obtienen la marca PG_rcu_free: aquellos que folio_mark_accessed() identifica como accedidos según los registros LRU", explica Shutsemau sobre el impacto en la eficiencia sobre el uso de memoria RAM. "Las lecturas en tiempo real (streaming) y los datos que nunca se vuelven 'calientes' no se posponen, por lo que la memoria retenida sigue siendo pequeña y la mayoría de las liberaciones de memoria no se ven afectadas".

Para comprender lo que esto supone para todos los usuarios que usan Linux en cualquier de sus formas, hay que entender cómo funciona la caché de páginas –page cache en su término original en inglés– y qué implica esto sobre la memoria RAM.

Qué supone para los usuarios este gran salto de rendimiento

Cada vez que una máquina, ya sea un ordenador, un servidor o cualquier otra, tiene que leer datos de un disco duro o un SSD, el kernel de Linux almacena una copia entera de toda esa información en la memoria RAM, en una especie de agrupaciones que se denominan folios, con el objetivo de que cualquier programa pueda leer los datos rápidamente desde la propia RAM.

No obstante, en los procesadores más modernos que cuenta con numerosos núcleos e hilos en ejecución, al intentar leer simultáneamente el mismo archivo cada uno de estos núcleos tiene que marcar obligatoriamente que lo está utilizando, iniciando una especie de contador de seguridad conocido como refcount para que la memoria no se eliminar durante el proceso de lectura.

Imagina esto con un procesador que tenga, por ejemplo, 64 núcleos o más operando sobre este contador al mismo tiempo; aquí, en el entorno tradicional de Linux, se produce lo que se denominada como rebote del contador de referencias –refcount bouncing, por su término original en inglés–, por lo que los núcleos pierden una gran cantidad de tiempo simplemente esperando a que los demás terminen de actualizar la memoria caché.

La idea original que Linus Torvalds logró gracias a la IA, y que ha perfeccionado el desarrollador de Meta, consiste en dar permiso a que los núcleos puedan leer los datos sin tener que modificar ese contado y evitando con ello que la memoria se elimine mientras cualquier núcleo la lee, lo que se llama "período de gracia RCU".

Y el salto en rendimiento ha sido espectacular, según las pruebas realizadas por Shutsemau con un procesador AMD Ryzen Threadripper con 64 hilos virtuales. En primer lugar, con las mitigaciones de seguridad activas por defecto, la velocidad de lectura pasó de 15 millones de lecturas por segundo a más de 68 millones, mientras que con las mitigaciones desactivadas de la CPU el rendimiento pasó de 17,2 millones a aproximadamente 220 millones de lecturas por segundo, multiplicando por 13 el mismo.

En segundo lugar, se modificó el código original de Linux que bloqueaba la memoria en cada lectura y se quedaba en una velocidad de 1,6 millones de lecturas por segundo; con el código modificado, esta tasa aumenta hasta 72 millones y a más de 230 millones sin mitigaciones.

Finalmente, en transferencias masivas de datos, la tasa se incrementó desde aproximadamente los 100 MiB por segundo hasta casi 1.400 MiB por segundo. De momento, estos cambios propuestos por el desarrollador de Meta continúan siendo examinados por la comunidad del kernel de Linux, aunque es muy probable que acaben desplegándose definitivamente.

Más información sobre: