Justo antes del lanzamiento del kernel Linux 6.11-rc1, se han integrado una serie de parches de Compute Express Link (CXL) para el kernel de Linux. Esta actualización incluye nuevas características y correcciones significativas, además de una importante actualización en la documentación que ofrece una visión detallada del estado actual del soporte de CXL en Linux.
CXL: Un Estándar Abierto para Conexiones de Alta Velocidad
CXL es un estándar abierto diseñado para conexiones de alta velocidad entre la CPU y los dispositivos, así como entre la CPU y la memoria, pensado para la computación de alto rendimiento y servidores. El desarrollo y habilitación de CXL es un proceso continuo debido a las múltiples versiones y diferentes tipos de dispositivos y sub-protocolos que abarca.

Novedades en Linux 6.11
Con la versión 6.11 de Linux, se ha introducido un manejador de notificaciones para gestionar las nuevas regiones de memoria CXL, calculando sus métricas de distancia abstracta necesarias para una adecuada jerarquización de la memoria en función de las capacidades de rendimiento. Además, el código de CXL en esta versión incluye varias correcciones, se ha añadido la matemática XOR para abordar la traducción de CXL DPA a SPA, y se han realizado diversas actualizaciones adicionales.
Actualización de la Documentación
Las actualizaciones de documentación del kernel de Linux no suelen ser especialmente notables, pero esta solicitud de incorporación de CXL trae consigo una importante novedad: una visión general del soporte actual de diferentes características de CXL en Linux. El «Mapa de Madurez de CXL» ofrece un vistazo detallado al estado actual de la habilitación de CXL dentro del kernel de Linux.
Este mapa detalla las características de CXL ya implementadas, así como aquellas que aún no se han comenzado o tienen lagunas conocidas en su funcionalidad. Entre las características no implementadas o con carencias conocidas se incluyen varias capacidades de enumeración de ventanas CXL, funcionalidades de Fabrics / G-FAM, Endpoint de Acceso Global, diversas características RAS, algunos comandos de buzón, capacidades de compartición de múltiples hosts y memoria de múltiples hosts, y una serie de características de aceleración.
Cambios y Correcciones Específicos
El conjunto completo de cambios en CXL para Linux 6.11 incluye:
- Manejador de Notificaciones: Para gestionar nuevas regiones de memoria CXL y calcular sus métricas de distancia.
- Corrección en bootlogd: Se solucionó un problema que podía causar que el servicio entrara en un bucle infinito, utilizando excesivamente la CPU cuando intentaba escribir en un dispositivo abierto sin éxito.
- Mejoras en la Documentación: Se ha limpiado y corregido el formato de la página del manual «shutdown.8», eliminando espacios en blanco y caracteres especiales.
Compute Express Link: Un Vistazo General
CXL es un estándar abierto diseñado para conexiones de alta velocidad y alta capacidad entre CPU y dispositivos, y entre CPU y memoria, utilizando la interfaz física y eléctrica de PCI Express (PCIe). Incluye protocolos basados en PCIe para entrada/salida (CXL.io) y nuevos protocolos coherentes para acceder a la memoria del sistema (CXL.cache) y la memoria de dispositivos (CXL.mem). Las capacidades de comunicación serial y agrupamiento permiten que la memoria CXL supere las limitaciones de rendimiento y empaquetado de sockets de la memoria DIMM común al implementar altas capacidades de almacenamiento.
Historia y Evolución
Desarrollada principalmente por Intel, la tecnología CXL fue formalizada con la creación del Consorcio CXL en marzo de 2019, con miembros fundadores como Alibaba Group, Cisco Systems, Dell EMC, Meta, Google, Hewlett Packard Enterprise (HPE), Huawei, Intel Corporation y Microsoft. A lo largo del tiempo, se han unido otros grandes nombres de la industria, incluyendo AMD, Nvidia, Samsung Electronics y Xilinx, entre otros.
El Consorcio CXL ha trabajado en la interoperabilidad con otras tecnologías como Gen-Z y OpenCAPI, y ha recibido contribuciones significativas de una amplia gama de empresas tecnológicas.
Especificaciones y Versiones
Desde su primera especificación lanzada en marzo de 2019 basada en PCIe 5.0, CXL ha evolucionado significativamente, añadiendo soporte para conmutación CXL, integridad de dispositivos y encriptación de datos en su versión 2.0, y capacidades de fabrics y conmutación multinivel en su versión 3.0, basada en la interfaz física de PCIe 6.0.
Implementaciones y Futuros Desarrollos
Empresas como Intel y Samsung ya han anunciado productos que incorporan soporte para CXL. Por ejemplo, los procesadores Intel Sapphire Rapids y los procesadores AMD EPYC «Genoa» y «Bergamo» tienen soporte para CXL 1.1. Además, en conferencias tecnológicas, diversas empresas han presentado dispositivos y soluciones basadas en CXL.
Conclusión
Las continuas mejoras en el soporte de CXL en Linux reflejan un esfuerzo continuo por adaptar y mejorar las tecnologías de interconexión de alta velocidad para satisfacer las demandas crecientes de computación de alto rendimiento. Con la inclusión de nuevas características y correcciones, Linux sigue consolidándose como una plataforma robusta y adaptable para futuras innovaciones tecnológicas.
Para más detalles sobre los cambios específicos en CXL para Linux 6.11, se puede consultar el commit de Git.