Por Canuto  

Linux 7.4-rc2 incorpora una optimización del controlador FAT que, en pruebas con QEMU, mostró mejoras de hasta 162 veces en ciertas condiciones. El cambio reorganiza cómo se reservan clústeres al expandir archivos, con un beneficio especialmente marcado en FAT32 con clústeres pequeños y montajes síncronos.
***

  • El cambio preasigna clústeres antes de expandir archivos y evita numerosas asignaciones pequeñas.
  • Las mejoras más pronunciadas aparecen en pruebas con QEMU sobre montajes síncronos y clústeres pequeños; no representan una aceleración universal.
  • La solicitud de correcciones también incluye ajustes para FAT, OCFS2, registros del kernel y compilaciones de OpenRISC.


Linux 7.4-rc2 incorpora una mejora de hasta 162 veces para FAT32

Una modificación del controlador FAT reorganiza la reserva de espacio y acelera ciertas expansiones de archivos. Las pruebas citadas por Phoronix muestran resultados especialmente llamativos en montajes síncronos, aunque la ganancia depende de las condiciones de uso y no equivale a una mejora uniforme para todos los sistemas FAT32.

El cambio llegó con una solicitud de correcciones no relacionadas con la gestión de memoria para Linux 7.4-rc2, que se integró el domingo previo a esa versión candidata. El desarrollador Matheus Alves de Almeida continúa trabajando en el rendimiento del controlador FAT de Linux, y esta modificación se suma a otras optimizaciones recientes y a una mejora adicional que se espera para Linux 7.5.

La reserva anticipada evita una cadena de asignaciones pequeñas

La modificación se centra en fat_cont_expand(), una función vinculada con la expansión continua de archivos en el sistema de archivos FAT. Antes del ajuste, esta ruta delegaba la asignación de clústeres nuevos a generic_cont_expand_simple(), un mecanismo que podía repartir el trabajo en muchas asignaciones pequeñas y perjudicar el rendimiento durante la expansión.

La propuesta de Almeida reserva por adelantado el espacio para los clústeres antes de ampliar el archivo, en lugar de solicitar cada porción de espacio a medida que avanza la operación. Según la explicación incluida en el parche, el objetivo es reducir el costo de esa secuencia fragmentada, que se vuelve particularmente relevante cuando el montaje síncrono y el tamaño pequeño de los clústeres hacen más visible el trabajo repetido.

Para centralizar la nueva lógica, el cambio incorpora un ayudante llamado fat_preallocate(), que sirve tanto a fat_cont_expand() como a fat_fallocate(FALLOC_FL_KEEP_SIZE). Así, las dos rutas pueden utilizar la preasignación, mientras que la opción KEEP_SIZE permite reservar espacio sin modificar el tamaño visible del archivo, según el comportamiento definido por esa operación.

El parche también sustituye la llamada genérica de expansión simple por fat_cont_expand_simple(), una variante específica de FAT. La razón que plantea el desarrollador es evitar que el sistema vuelva a comprobar el tamaño nuevo después de que ya se asignaron los clústeres, un paso adicional que considera innecesario en esa secuencia y que la optimización busca eliminar.

Los resultados dependen de las condiciones de uso

Phoronix informó mejoras de hasta 162 veces en las pruebas de rendimiento relacionadas con este cambio, realizadas con QEMU. La publicación destaca que el mayor impacto aparece en sistemas de archivos FAT32 con tamaños de clúster pequeños y montajes síncronos, dos condiciones que delimitan el alcance de los resultados reportados.

Ese máximo no debe leerse como una promesa de que cualquier dispositivo FAT32 funcionará 162 veces más rápido tras actualizar Linux. El dato describe los resultados de determinados puntos de referencia, mientras que el beneficio práctico puede variar según la configuración del sistema de archivos y las operaciones que ejecute el usuario.

La diferencia entre asignar bloques pequeños repetidamente y reservarlos con anticipación ofrece una explicación del salto observado en esos escenarios. Si una expansión exige muchas solicitudes sucesivas, reducirlas puede acortar el trabajo asociado a la operación; en cambio, la noticia no aporta cifras detalladas por configuración ni establece un resultado equivalente para otros usos o dispositivos.

El avance se suma a una optimización de FAT32 que, según el reporte, ya se había integrado para el ciclo Linux 7.4 y que alcanzaba hasta 265 veces mejor rendimiento. Además, Phoronix informó que otra mejora para FAT32 podría llegar en Linux 7.5 y mostrar hasta 4,06 veces más rendimiento mediante la agrupación de escrituras síncronas en las copias espejo de la FAT y mejoras en el proceso de envío. Se trata de un trabajo distinto del parche de Linux 7.4-rc2.

Más correcciones acompañan el cambio de FAT

La solicitud que llevó la optimización al kernel reúne otros ajustes para el controlador FAT. Entre ellos figuran tres correcciones: evitar que una carrera entre un fallo de escritura y FIBMAP convierta erróneamente el sistema de archivos en solo lectura, corregir los conteos de enlaces de directorio después de un cambio de nombre y acelerar la expansión de archivos.

La mayor parte de las correcciones de esa solicitud corresponde a OCFS2, de acuerdo con el resumen publicado. Los cambios atienden problemas de corrupción y ausencia de atributos extendidos, errores del kernel y fallos durante la configuración de clústeres, la migración de bloques, la recuperación y el desmontaje del sistema de archivos.

Entre los ajustes de OCFS2 también se corrige el movimiento de atributos extendidos para que el sistema valide su rango frente a un tamaño de archivo estable. Ese control apunta a evitar que la operación evalúe los límites con una referencia que pueda cambiar durante el proceso, un problema distinto de la aceleración de FAT32 pero incluido en la misma ronda de correcciones.

La lista incluye, además, una corrección en una cadena de contaminación del kernel que evita una lectura fuera de límites capaz de exponer contenido de la memoria slab en el registro del sistema. También incorpora arreglos de compilación para módulos de OpenRISC en procesadores sin multiplicación por hardware y para Clang 24, junto con las demás modificaciones de mantenimiento.

Una mejora puntual dentro de una ronda de mantenimiento

El cambio de FAT32 no llega como una versión independiente del kernel, sino como parte de la solicitud de correcciones no relacionadas con la gestión de memoria previa a Linux 7.4-rc2. Esa distinción importa porque la publicación describe una serie de arreglos agrupados, donde la mejora de rendimiento comparte espacio con correcciones de integridad, compilación y comportamiento de otros sistemas de archivos.

En ese conjunto, la propuesta de preasignación destaca por el tamaño de las mejoras observadas en ciertos escenarios, pero el reporte no detalla una cifra única aplicable a todas las cargas de trabajo. Los resultados con QEMU sirven como referencia para las condiciones evaluadas, mientras que la descripción técnica del parche explica el cambio de diseño que busca reducir las asignaciones repetidas.

La secuencia de versiones también muestra que el trabajo sobre FAT no se limita a esta actualización: una optimización anterior ya se incorporó al ciclo 7.4 y otra podría llegar en 7.5. Sin información adicional sobre esta última, lo verificable por ahora es que Linux 7.4-rc2 suma un ajuste concreto para la expansión de archivos y varias correcciones que abarcan FAT, OCFS2 y otros componentes.

Para quienes administran sistemas que dependen de FAT32, el dato más útil es identificar si su configuración se parece a las condiciones que favorecieron el mayor rendimiento: clústeres pequeños y montaje síncrono. Fuera de ese contexto, la fuente no permite anticipar una ganancia específica, pero sí documenta una reorganización del proceso de expansión y su integración en la ronda de correcciones de Linux 7.4-rc2.


ADVERTENCIA: DiarioBitcoin ofrece contenido informativo y educativo sobre diversos temas, incluyendo criptomonedas, IA, tecnología y regulaciones. No brindamos asesoramiento financiero. Las inversiones en criptoactivos son de alto riesgo y pueden no ser adecuadas para todos. Investigue, consulte a un experto y verifique la legislación aplicable antes de invertir. Podría perder todo su capital.

Suscríbete a nuestro boletín