Linux 6.18 estrena “Sheaves”: una nueva capa de caché que promete mejorar el rendimiento.

Publicado el 3 de octubre de 2025, 9:30

El desarrollo del kernel de Linux nunca se detiene, y con cada nueva versión llegan cambios que, aunque a veces pasan desapercibidos, pueden marcar una gran diferencia en el rendimiento del sistema. En esta ocasión, para la ventana de fusión de Linux 6.18, se ha incorporado una novedad muy interesante: “Sheaves”, una capa de caché que podría convertirse en un cambio importante en la forma en que se gestionan ciertos objetos dentro del kernel.

La noticia la confirmó Michael Larabel en Phoronix, señalando que el código fue aceptado sin objeciones de Linus Torvalds ni de otros desarrolladores clave. Y eso ya es un buen indicador de confianza.

¿Qué es exactamente “Sheaves”?

Sheaves es una nueva capa de caché opt-in, es decir, que se activa de manera opcional. Funciona a nivel de CPU y se basa en arrays, algo que recuerda a los viejos tiempos de SLAB, pero con un enfoque más moderno y eficiente.

La idea detrás de este cambio es combinar lo mejor de SLAB —esa simplicidad de trabajar con cachés por CPU— con la flexibilidad de SLUB, pero evitando los problemas que tenían las implementaciones anteriores con los objetos liberados en nodos NUMA remotos o con los procesos de “flush” (vaciado de memoria).

En palabras de los desarrolladores:

“Se trata de una nueva capa para gestionar objetos en caché, permitiendo asignaciones y liberaciones a través de arrays per-CPU llamadas Sheaves. El objetivo es juntar lo bueno de SLAB —una caja de percpu más simple— sin caer en los inconvenientes que generaban los arrays antiguos en NUMA. Además, mejora la eficiencia de llamadas como kfree-rcu() y permite preasignaciones de objetos más económicas, especialmente en casos en los que no se sabe el número exacto de objetos necesarios, pero sí existe un límite superior.”

¿Dónde se usará primero?

Por ahora, esta nueva capa se está aplicando en dos áreas clave:

  • VMAs (Virtual Memory Areas)

  • Maple tree nodes (estructuras que el kernel utiliza para manejar rangos de memoria y otros datos)

Pero la intención va más allá. El plan a medio plazo es extender Sheaves a todos los cachés, con la idea de reemplazar progresivamente parte de la compleja infraestructura actual de SLUB basada en losas parciales por CPU y en mecanismos como this-cpu.cmpxchchg.double().

¿Qué significa esto para el usuario final?

Aunque es un cambio muy técnico y “bajo el capó”, las primeras pruebas independientes muestran un potencial de rendimiento realmente prometedor. En la práctica, esto se traduce en que ciertos procesos de asignación y liberación de memoria en el kernel podrían ser más rápidos y eficientes. Y como sabemos, en un sistema operativo como Linux, optimizar la gestión de memoria es clave para todo lo demás: desde servidores que manejan miles de procesos concurrentes, hasta sistemas embebidos que buscan ahorrar cada ciclo de CPU.

Una mirada hacia adelante

Linux 6.18 todavía está en plena fase de integración, pero Sheaves ya apunta a ser una de las grandes novedades técnicas de esta versión. Quizá para el usuario común no tenga un impacto inmediato ni visible, pero para quienes dependen del kernel en entornos de alto rendimiento, este tipo de cambios son los que marcan la diferencia.

En resumen: con Sheaves, el kernel gana una herramienta más eficiente para manejar memoria, heredando lo mejor de SLAB, evitando las trampas de SLUB y preparando el terreno para una gestión más limpia y veloz en futuras versiones.

 

Fuente: Phoronix

Añadir comentario

Comentarios

Todavía no hay comentarios