En el desarrollo de Linux 7.4, ext4 incorpora una ruta opcional de E/S con búfer basada en iomap para archivos regulares. La opción de montaje buffered_iomap la activa; por defecto está deshabilitada y, cuando hace falta, ext4 vuelve a su ruta de E/S original. El cambio figura en las actualizaciones de ext4 para Linux 7.4-rc1 que Theodore Ts’o envió el 22 de octubre de 2026; la serie incluye 31 parches de Zhang Yi.

Qué resultados dieron las pruebas FIO

Las mediciones de FIO atribuidas a Zhang Yi se realizaron en una máquina virtual de cuatro núcleos con un dispositivo de bloques respaldado por memoria. Los resultados varían según el tamaño de escritura y el uso de caché, escritura diferida o fsync, que fuerza la sincronización de los datos.

Escenario de escrituraext4 con buffer heads (MiB/s)ext4 con iomap (MiB/s)Variación informada
1 MiB con caché de páginas4.2955.780+35 %
64 KiB con escritura diferida en segundo plano734957+30 %
64 KiB sin caché415698+68 %
1 MiB sin caché1.4042.883+105 %
1 KiB, con fsync después de cada escritura0,710,60−15 %

La mayor subida corresponde a escrituras de 1 MiB sin caché: en ese escenario concreto, el resultado pasó de 1.404 a 2.883 MiB/s. La prueba de escrituras de 1 KiB con fsync después de cada operación, en cambio, bajó de 0,71 a 0,60 MiB/s. Por tanto, las cifras describen resultados distintos según la carga, no una mejora uniforme de ext4.

Qué condiciones excluye la ruta iomap

La actualización de ext4 enumera seis casos no compatibles con la nueva ruta: desfragmentación en línea, datos inline, fs-verity, fscrypt, inodes sin extents y el modo data=journal. Si hace falta, ext4 recurre a la ruta de E/S original.

Para revisar una configuración, conviene separar las opciones del montaje de los atributos de cada inode. data=journal es una opción de montaje. El cifrado, verity, los datos inline y el uso de extents corresponden a atributos del inode; la interfaz FS_IOC_GETFLAGS permite obtener esos atributos. La desfragmentación en línea es una operación, no un atributo persistente del inode.

Qué aporta iomap y qué ocurre con data=ordered

iomap es una biblioteca del kernel para operaciones de archivos que trabaja con correspondencias entre rangos del archivo y el almacenamiento. Su diseño permite que el sistema de archivos ofrezca una correspondencia mayor para una operación, de modo que las llamadas de mapeo se repartan entre más datos. Esa es una razón de diseño para usar iomap, no una garantía de rendimiento para cada carga.

data=journal y data=ordered son modos distintos. El primero aparece entre las incompatibilidades de la ruta iomap; la actualización también indica que los inodes que usan esa ruta no emplean data=ordered. En la explicación de Zhang Yi se menciona por separado una salvedad sobre los datos al final del archivo ante una pérdida de energía.