[PATCH v3 0/8] Introduce the end_syncfs option

Damien Le Moal
2026-02-27T06:00:55Z

Jens, Vincent,

This patch series introduces the end_syncfs option and adds support for
it to the main IO engines that can handle regular files.
This new option improves the precision of file system benchmarks when a
large number of files are being handled.

Changes from v2:
- Reworked patch 1 to build a list of file system mounts per job and
have the end_syncfs option issue syncfs() call for eacho mounted file
system when a job write stage completes.
- Added patch 2 to 7 to support this new option in hte sync, libaio,
io_uring, fallocate, fileoperations, ftruncate and posixaio IO
engines.

Damien Le Moal (8):
fio: introduce the end_syncfs option
engines: sync: add support for DDIR_SYNCFS
engines: libaio: add support for DDIR_SYNCFS
engines: io_uring: add support for DDIR_SYNCFS
engines: fallocate: add support for DDIR_SYNCFS
engines: fileoperations: add support for DDIR_SYNCFS
engines: ftruncate: add support for DDIR_SYNCFS
engines: posixaio: add support for DDIR_SYNCFS

HOWTO.rst | 9 ++-
backend.c | 59 ++++++++++++++----
cconv.c | 2 +
configure | 21 +++++++
engines/falloc.c | 4 +-
engines/fileoperations.c | 8 +--
engines/ftruncate.c | 4 +-
engines/io_uring.c | 16 +++--
engines/libaio.c | 8 ++-
engines/posixaio.c | 8 ++-
engines/sync.c | 11 ++--
file.h | 15 +++++
filesetup.c | 129 ++++++++++++++++++++++++++++++++++++---
fio.1 | 8 ++-
fio.h | 1 +
helpers.c | 8 +++
helpers.h | 3 +
init.c | 1 +
io_ddir.h | 3 +-
io_u.c | 6 +-
ioengines.c | 10 ++-
ioengines.h | 4 ++
options.c | 19 ++++++
server.h | 2 +-
stat.c | 3 +-
thread_options.h | 5 +-
zbd.c | 1 +
27 files changed, 319 insertions(+), 49 deletions(-)

--
2.53.0