Phoronix informó el 29 de octubre de 2026 de que un cambio en el controlador FAT se había integrado en Linux 7.4. El cambio agrupa la asignación de clústeres en una ruta concreta de preasignación; la prueba más destacada midió esa operación, no la velocidad de una copia de archivos.

Qué cambia en la asignación de FAT32

La modificación afecta a FALLOC_FL_KEEP_SIZE, una opción de fallocate() que reserva espacio en disco sin cambiar el tamaño que muestra el archivo. En la ruta de FAT que amplía esa reserva, el código anterior pedía los clústeres de uno en uno. El parche pasa la cantidad solicitada a una sola llamada a fat_add_clusters().

Una llamada para asignar varios clústeres

La diferencia está en cómo se solicita la asignación: varias llamadas para un clúster cada una pasan a una llamada que pide el número de clústeres necesario. El diagrama representa ese cambio de estructura, no una disposición física concreta de los clústeres.

Qué midió la prueba de rendimiento

Dos esquemas de celdas de almacenamiento comparan varias llamadas de asignación de un clúster con una llamada que solicita varios clústeres.

Matheus Alves de Almeida, autor del parche, midió un bucle que llamaba a fallocate() una vez por archivo con FALLOC_FL_KEEP_SIZE. En el caso con el mayor resultado comunicado, el bucle procesó 16 archivos de 16 MiB, con clústeres FAT32 de 4.096 bytes y un montaje síncrono: el tiempo total pasó de 92,489 a 0,348 segundos, como media de 10 muestras. La prueba se ejecutó en QEMU/KVM con un dispositivo virtio-blk y cache=none.

El autor explicó que la mejora es especialmente grande en montajes síncronos porque el código puede agrupar actualizaciones de FAT, en vez de procesar cada asignación de clúster por separado. Los resultados corresponden a esa configuración virtualizada.

Los extremos de los doce casos publicados

El menor resultado de los doce casos fue 5,3×. Correspondió a 128 archivos de 16 KiB, clústeres de 512 bytes y un montaje no síncrono. El bucle pasó de 1,287 a 0,241 milisegundos, como media de 10 muestras.

CasoArchivos y tamaño por archivoClúster FAT32Montaje síncronoTiempo total del bucle antesTiempo total del bucle despuésMuestras
Mayor resultado comunicado16 de 16 MiB4.096 bytesSí92,489 s0,348 s10
Menor resultado de la matriz128 de 16 KiB512 bytesNo1,287 ms0,241 ms10

Preasignar espacio no es copiar archivos

La cifra de rendimiento se refiere a llamadas repetidas a fallocate() con FALLOC_FL_KEEP_SIZE. La prueba no midió copias normales de archivos ni el rendimiento general de lectura o escritura en FAT32. Por eso, sus resultados describen esa ruta de preasignación y esas condiciones de prueba, no la velocidad de una transferencia cotidiana.

El cambio de asignación se había integrado en Linux 7.4, según el informe de Phoronix.