Saltar al contenido
NeoventixTecnología

Software

Linux 7.3 ya está disponible con mejor gestión de VRAM, subplanificadores sched_ext por cgroup y un nuevo aislamiento con failfs

Linus Torvalds publicó la versión estable 7.3 del núcleo, que también trae mejoras de rendimiento en Btrfs y ext4, más control sobre binfmt_misc y soporte de Time Machine en el servidor SMB. Se abre la ventana de fusión de Linux 7.4.

Linuxkernelcódigo abiertosistemas operativos

Linus Torvalds, a la derecha, conversa con Dirk Hohndel en el escenario de LinuxCon Europe 2014 en Düsseldorf
Foto: Krd (CC BY-SA 4.0)

Linus Torvalds publicó el domingo Linux 7.3, la nueva versión estable del núcleo, en la fecha prevista y tras una última semana sin sobresaltos. La etiqueta v7.3 ya figura en su repositorio de kernel.org y, con ella, se abre la ventana de fusión de Linux 7.4, el periodo de unas dos semanas en el que se integra el código nuevo del siguiente ciclo. En su anuncio, recogido por LWN, Torvalds avisó de que estará de vacaciones familiares y que su ritmo de integración será algo irregular durante un tiempo.

Según el recuento de LWN, el ciclo de 7.3 batió récords: 18.765 commits (sin contar fusiones) de 3.021 desarrolladores, 807 de ellos con su primera contribución al núcleo. El registro detallado de cambios que mantiene KernelNewbies destaca varias novedades con efecto directo en escritorios, servidores y entornos de virtualización.

La más visible para usuarios de escritorio es una mejor gestión de la memoria de video en GPU con poca VRAM. Hasta ahora, cuando dos aplicaciones competían por esa memoria, la que llegaba después, aunque tuviera más prioridad, podía quedarse sin espacio y acabar usando memoria del sistema accesible por la GPU, mucho más lenta. Con 7.3, el controlador de cgroups dmem y el gestor TTM intentan desalojar primero los búferes no protegidos para respetar la memoria garantizada a cada proceso, lo que evita el llamado ping-pong entre ubicaciones.

En planificación de tareas, el ciclo completa el soporte de subplanificadores en sched_ext, el mecanismo que permite escribir planificadores como programas BPF: ahora cada cgroup puede tener su propio planificador BPF con decisiones distintas. Además, la planificación por grupos, una fuente histórica de quejas por latencia y sobrecarga, recibe nuevos modos de reparto de peso y pasa a una única cola de ejecución.

Para quienes construyen sandboxes llega un mecanismo nuevo basado en failfs, un pseudosistema de archivos en el que toda operación falla, y en la llamada al sistema fchroot(2), una versión de chroot basada en descriptores de archivo. Un proceso que mueve su raíz a failfs ya no puede resolver rutas absolutas ni enlaces simbólicos absolutos, de modo que solo puede acceder a archivos a partir de descriptores que tenga abiertos de antemano. Al operar sobre descriptores, fchroot también evita la condición de carrera entre resolver una ruta y cambiar la raíz. En la misma línea, los hilos del núcleo dejan de compartir el estado del sistema de archivos con PID 1 y quedan aislados en un montaje nullfs.

Los sistemas de archivos también ganan rendimiento. En Btrfs, la E/S directa recupera el nivel perdido en versiones anteriores, en discos que no son SSD la eliminación de una espera innecesaria multiplica por cinco el rendimiento de una carga de prueba con varias tareas de registro, y el fsync completo de archivos sin huecos es unas cinco veces más rápido, según las cifras recogidas por KernelNewbies. Ext4 mejora las escrituras directas en paralelo y fallocate(), y corrige una regresión en escrituras con búfer. Por su parte, la capa de bloques admite la marca RWF_DONTCACHE sobre dispositivos de bloque, lo que permite a una base de datos decidir petición por petición qué datos pasan por la caché de páginas sin recurrir a la E/S directa.

Otros cambios apuntan a nichos concretos pero relevantes: binfmt_misc admite ahora manejadores respaldados por BPF que eligen el intérprete en cada ejecución, útil para distribuciones como NixOS; el servidor SMB del núcleo (ksmbd) incorpora soporte opcional para copias de seguridad de Time Machine de macOS y cifrado SMB3 por recurso compartido; userfaultfd añade seguimiento del conjunto de trabajo de la memoria de máquinas virtuales, y FUSE sobre io_uring gana grupos de búferes y copia cero.

Como análisis, el patrón del ciclo es claro: buena parte del trabajo de 7.3 se concentra en cgroups, BPF y aislamiento, las piezas sobre las que se apoyan contenedores, nubes y gestores de sistema. Lo siguiente es la ventana de fusión de 7.4, y el núcleo 7.3 llegará a los usuarios a medida que las distribuciones lo incorporen a sus versiones.

Fuentes: etiqueta v7.3 en kernel.org, KernelNewbies y LWN.net.

Fuentes