[PATCH v4 0/8] Introduce the end_syncfs option
Damien Le Moal <[email protected]> Fri, 27 Feb 2026 17:07:03 +0900
| Newsgroups | org.kernel.vger.fio |
|---|---|
| Message-ID | <[email protected]> |
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 v3: - Fix compilation errors with Windows/cygwin: dirname() and dirfd() functions do not exist apparently, so expand the scope of the CONFIG_SYNCFS conditional code. 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 | 63 +++++++++++++++---- cconv.c | 2 + configure | 26 ++++++++ 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 | 17 +++++ filesetup.c | 132 ++++++++++++++++++++++++++++++++++++--- 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, 333 insertions(+), 49 deletions(-) -- 2.53.0