Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
1313 commits
Select commit Hold shift + click to select a range
0458bfd
fio: allow trim operations for verify/trim workloads
vincentkfu Mar 31, 2025
15bac87
trim_verify: include a trim panel in the output
vincentkfu Mar 31, 2025
9408374
init: error out when readonly is set for a trim/verify workload
vincentkfu Mar 31, 2025
67379ba
verify/trim: stop issuing trims if we run out
vincentkfu Mar 31, 2025
46f2285
verify/trim: make trim_backlog_batch work
vincentkfu Mar 31, 2025
4bc702c
t/verify-trim.py: superficial test script for verify/trim
vincentkfu Mar 31, 2025
f18c2fd
ci: add verify-trim.py test script
vincentkfu Mar 31, 2025
2a87f26
zbd: move zone finish operation to zbd_convert_to_write_zone()
kawasaki Apr 14, 2025
fbac34f
zbd: factor out zbd_pick_write_zone()
kawasaki Apr 14, 2025
e2e29bf
zbd: finish zone when all random write target zones have small remainder
kawasaki Apr 14, 2025
96afc23
t/zbd: add test for the case all write zones have small remainder
kawasaki Apr 14, 2025
b7be1e4
Fix hang on Windows when multiple --client args are present
blah325 Apr 15, 2025
19d9ef1
Merge branch 'master' of https://github.com/blah325/fio
axboe Apr 16, 2025
4175f4d
oslib: blkzoned: add blkzoned_move_zone_wp() helper function
kawasaki Apr 25, 2025
6f635d6
ioengine: add move_zone_wp() callback
kawasaki Apr 25, 2025
d4f6fa5
engines/libzbc: implement move_zone_wp callback
kawasaki Apr 25, 2025
143aaff
zbd: introduce zbd_move_zone_wp()
kawasaki Apr 25, 2025
650c4ad
zbd: add the recover_zbd_write_error option
kawasaki Apr 25, 2025
5cbd164
t/zbd: set badblocks related parameters in run-tests-against-nullb
kawasaki Apr 25, 2025
b6002e7
t/zbd: add the test cases to confirm continue_on_error option
kawasaki Apr 25, 2025
4dc6c8d
t/zbd: add run-tests-against-scsi_debug
kawasaki Apr 25, 2025
03a11dc
oslib: blkzoned: add missing blkzoned_move_zone_wp() stub
kawasaki May 8, 2025
6403937
Document expected filename format for s3 http engine.
May 7, 2025
b77088b
Merge branch 'patch-1' of https://github.com/avrittrohwer/fio
axboe May 8, 2025
1691559
HOWTO: fix bad whitespace
axboe May 8, 2025
1276068
Merge branch 'continue_on_error_fix_up' of https://github.com/kawasak…
axboe May 8, 2025
3a2b42b
windows: fix pread/pwrite
vincentkfu May 8, 2025
f4e54d3
man: Fix recover_zbd_write_error option description
damien-lemoal May 9, 2025
21628ec
fio_sem, diskutil: introduce fio_shared_sem and use it for diskutil lock
kawasaki May 13, 2025
171e181
configure: Fix libnfs cflags and libs
damien-lemoal May 14, 2025
ab4e5b7
verify: add verify mode for a pattern with header
vincentkfu May 8, 2025
b683f9e
verify: fix verify_offset when used with pattern_hdr
vincentkfu May 8, 2025
7431e15
verify: make verify_pattern=%o thread safe
vincentkfu May 8, 2025
76a8799
verify: omit verify type mismatch error message for pattern verify
vincentkfu May 8, 2025
fe9072b
t/fiotestcommon: lengthen timeout for longer tests
vincentkfu May 8, 2025
e1e42ec
ci: for nightly verify tests use all checksum methods
vincentkfu May 8, 2025
b56dbc7
ci: don't skip verify tests when triggered manually
vincentkfu May 8, 2025
79330c2
verify: add verify_pattern_interval option
vincentkfu May 8, 2025
2115134
t/verify: test cases for running pattern and pattern_hdr
vincentkfu May 8, 2025
2c8ba65
t/verify: Windows --output work-around
vincentkfu May 8, 2025
fb253b2
t/verify: add tests to exercise verify_pattern_interval
vincentkfu May 8, 2025
ff930c4
Fio 3.40
axboe May 20, 2025
c348db3
Add Zhaoxin support to enable tsc_reliable and arch_random features
May 22, 2025
d88e8c9
engines/io_uring: remove unnecessary SQ full check
calebsander May 31, 2025
af8ed1e
Merge branch 'opt/io_uring-sq-full-check' of https://github.com/caleb…
axboe May 31, 2025
4655560
t/verify: skip crc7 when running checksum tests
vincentkfu May 22, 2025
02fe4fb
ioengines: clear in-flight bit for FIO_Q_BUSY syncs
vincentkfu May 28, 2025
813445e
backend: clean up requeued io_u's
vincentkfu Jun 4, 2025
7d24088
parse: use minimum delimiter distance
leonid-kozlov Jun 18, 2025
acd2dd4
io_uring: ensure accurate real_file_size setup for full device access…
Jun 23, 2025
7060d7b
Merge branch 'fix_real_file_size_when_pi_is_enabled' of https://githu…
axboe Jun 23, 2025
538db2e
Merge branch 'fix-random-distribution-parsing-failure' of https://git…
vincentkfu Jun 23, 2025
7037b83
windows: drop nanosleep and clock_gettime
vincentkfu Jun 23, 2025
544be3b
io_u: fix offset calculation in randtrimwrite
ljw8161 Jun 26, 2025
5db7e6b
Merge branch 'fix-randtrimwrite' of https://github.com/minwooim/fio
axboe Jun 30, 2025
404ab60
engines/http: fix file name
sfc-gh-rnarubin Jun 30, 2025
010b8ba
Merge branch 'http-filename-fix' of https://github.com/sfc-gh-rnarubi…
axboe Jul 8, 2025
7fdd104
engines/http: Add S3 security token support
sfc-gh-rnarubin Jul 7, 2025
eb0312c
Merge branch 'security-token' of https://github.com/sfc-gh-rnarubin/fio
axboe Jul 9, 2025
1c83ed1
io_u: get io_u from io_u_freelist when TD_FSYNCING
JeongJonghwi Jul 3, 2025
34fa726
Merge branch 'fsync-get-io-u-from-freelist' of https://github.com/jeo…
vincentkfu Jul 16, 2025
645d43a
Revert "engines/io_uring: update getevents max to reflect previously …
calebsander Jul 17, 2025
ec87e8c
engines/io_uring: consolidate fio_ioring_cqring_reap() arguments
calebsander Jul 17, 2025
740019d
engines/io_uring: remove loop over CQEs in fio_ioring_cqring_reap()
calebsander Jul 17, 2025
c607849
engines/io_uring: return unsigned from fio_ioring_cqring_reap()
calebsander Jul 17, 2025
97d1c1a
engines/io_uring: simplify getevents control flow
calebsander Jul 17, 2025
11b5e37
arch: add atomic_store_relaxed()
calebsander Jul 17, 2025
a9af54b
engines/io_uring: relax CQ head atomic store ordering
calebsander Jul 17, 2025
60c19ed
Merge branch 'fix/io_uring-cq-reap' of https://github.com/calebsander…
axboe Jul 18, 2025
80271ca
fio: add filetype option
Jul 21, 2025
258e96a
Merge branch 'filetype-option' of https://github.com/struschev/fio
vincentkfu Jul 22, 2025
4d5555b
engines/io_uring: get rid of silly strcmp() calls for io_ops->name
axboe Jul 23, 2025
bc428fd
engines/io_uring: io_uring engine type cleanups
axboe Jul 23, 2025
0d9ed42
engines/io_uring: cleanup fio_ioring_cmd_open_file()
axboe Jul 23, 2025
0e987a2
engines/io_uring: code cleanup
axboe Jul 23, 2025
306d898
engines/io_uring: don't duplicate open/close file code
axboe Jul 23, 2025
05fd3c4
verify: make numberio uint64_t
noclip-code Jul 23, 2025
a9ba7ce
verify: rework write tracking for use with verify_save_state()
noclip-code Jul 23, 2025
935297d
verify: plumb inflight write information through verify state
noclip-code Jul 23, 2025
aa10c20
verify: clear inflight log in between loops
noclip-code Jul 25, 2025
e1a250c
verify: add versioning to verify_header
noclip-code Jul 28, 2025
706084d
filesetup: make longest_existing_path() static and const-correct
tomas-winkler-sndk Jul 31, 2025
6e8c646
eta: convert skip_eta() to ANSI C declaration
tomas-winkler-sndk Jul 31, 2025
9897c06
engines/io_uring: store ioengine id in ioengine data
vincentkfu Jul 25, 2025
49842d0
engines/nvme: move inline functions from .c to .h file
vincentkfu Jul 25, 2025
2fb6a27
engines/nvme: refactor filling protection information
vincentkfu Jul 25, 2025
f928d3e
engines/io_uring: simplify io_u_free
vincentkfu Jul 25, 2025
be06e55
engines/io_uring: fill in guard generation options at init time
vincentkfu Jul 25, 2025
f97d9f3
engines/io_uring: support r/w with metadata
vincentkfu Jul 25, 2025
ef740f7
t/io_uring_pi: test script for io_uring PI
vincentkfu Jul 25, 2025
ab8b141
Merge branch 'verify_inflight' of https://github.com/noclip-code/fio
axboe Aug 5, 2025
b1b07c8
ioengines: bump version number
axboe Aug 5, 2025
f95cf49
crc: use ISA-L for crc64 NVMe if available
vincentkfu Aug 4, 2025
1e6ca39
verify: fix write tracking in error cases
kawasaki Aug 9, 2025
a52833b
verify: bump up verify state file version
kawasaki Aug 9, 2025
2fade20
Makefile: fix man and share install paths on macOS
Kubo326 Aug 10, 2025
55355b2
engines/io_uring: fix error value
vincentkfu Aug 11, 2025
bdcb359
engines/io_uring: fix memory leaks during init
vincentkfu Aug 11, 2025
fef6410
configure: skip isal64 check when isal check fails
vincentkfu Aug 8, 2025
bd42e45
engines/http: Add support for range reads
sfc-gh-rnarubin Jul 1, 2025
7664dcc
Merge branch 'http-range-header' of https://github.com/sfc-gh-rnarubi…
vincentkfu Aug 18, 2025
efaeeea
Merge branch 'fix-install-paths' of https://github.com/kubo326/fio
vincentkfu Aug 19, 2025
811162f
sprandom: add command line options
tomas-winkler-sndk Jun 3, 2025
c3291d4
sprandom: add debug facility
tomas-winkler-sndk Jul 1, 2025
0ab11d7
sprandom: examples: add sprandom example file
tomas-winkler-sndk Jun 29, 2025
1f5a8f1
sprandom: implement region computation and invalidation percentage
tomas-winkler-sndk Jul 1, 2025
ffc4967
sprandom: set up LFSR random generator and disable randommap
tomas-winkler-sndk Jul 9, 2025
6e87a42
num2str: add bytes2str_simple()
tomas-winkler-sndk Jul 29, 2025
ab29993
unittests: add bytes2str_simple()
tomas-winkler-sndk Jul 31, 2025
0ea77ea
sprandom: pcbuf.h add two-phase circular buffer header-only library
tomas-winkler-sndk Jul 28, 2025
e829b54
unittests: add pcbuf simple unit test
tomas-winkler-sndk Aug 10, 2025
08f3786
sprandom: initialize random state
tomas-winkler-sndk Aug 17, 2025
13b9d82
sprandom: implement sprandom_get_next_offset()
tomas-winkler-sndk Jul 30, 2025
81a2fbe
sprandom: initialize sprandom for file
tomas-winkler-sndk Jul 30, 2025
40c482b
sprandom: integrate sprandom_get_next_offset() into io_u path
tomas-winkler-sndk Jul 30, 2025
f39cbe4
stat: make stat.c static and const-correct
tomas-winkler-sndk Aug 20, 2025
bbf9b2d
engines/http: make fio_http_getevents static
tomas-winkler-sndk Aug 20, 2025
4b327db
engines: make engines static-correct
tomas-winkler-sndk Aug 20, 2025
5816d7f
engines/libaio: enable libaio fsync
axboe Aug 21, 2025
a475300
backend: call IO engine post-init after file creation
axboe Aug 21, 2025
ac2aa2c
Kill of IO engine cancelation support
axboe Aug 21, 2025
5b6f59e
Merge branch 'sprandom' of https://github.com/tomas-winkler-sndk/fio
vincentkfu Aug 22, 2025
4125642
sprandom: abort when invalid options specified
vincentkfu Aug 22, 2025
1fb2d4a
verify: use new buffer for threads with %o format
vincentkfu Aug 22, 2025
9407575
man: fix mandoc lint errors
sitsofe Aug 23, 2025
bf5b0b7
man: fix mandoc "PP empty" warnings
sitsofe Aug 23, 2025
16581fe
man: update date
sitsofe Aug 23, 2025
2a85ed6
Merge branch 'fix_mandoc_warnings' of https://github.com/sitsofe/fio
vincentkfu Aug 25, 2025
341ed02
fio: fix formats under MIPS64/PPC
neheb Jun 28, 2024
d6acda3
Merge branch 'patch-1' of https://github.com/neheb/fio
axboe Aug 27, 2025
224a7cc
sprandom: setup SPRandom before total_io_size is computed
tomas-winkler-sndk Aug 27, 2025
3675972
sprandom: fix debug printout for offset
tomas-winkler-sndk Aug 28, 2025
226a6e3
sprandom: free invalid_pct buffer
tomas-winkler-sndk Aug 28, 2025
8c8e705
sprandom: drop validity_dist after use
tomas-winkler-sndk Aug 28, 2025
41880b9
mac: implement (file) cache invalidation
sitsofe Aug 25, 2025
407491a
mac: add readahead control to the posix_fadvise() shim
sitsofe Aug 25, 2025
d4b1dce
Merge branch 'sprandom-fixes' of https://github.com/tomas-winkler-snd…
vincentkfu Sep 4, 2025
b7ce90b
sprandom: wait to free validity_dist
vincentkfu Sep 4, 2025
23e6c4f
t/verify-state: synchronise verify state version
sitsofe Sep 4, 2025
3b730c6
t/verify-state: improve verify state inflight output
sitsofe Sep 4, 2025
83a809b
Merge branch 'fix_verify-state' of https://github.com/sitsofe/fio
axboe Sep 4, 2025
ed675d3
Fio 3.41
axboe Sep 5, 2025
fc8f9c7
Merge branch 'improve_flushing_darwin' of https://github.com/Develope…
axboe Sep 6, 2025
ea0bc00
Makefile: fix missing test tool and unit test dependencies
Meiye-lj Aug 24, 2025
84787ad
Merge branch 'master' of https://github.com/Meiye-lj/fio
axboe Sep 8, 2025
2c573a3
stat: used shared sem for stats lock
axboe Sep 16, 2025
80d72cb
t/io_uring: Vectored fixed buffer test support for nvme passthrough path
lreeze123 Sep 17, 2025
b88f884
tests: add sprandom test cases
tomas-winkler-sndk Sep 11, 2025
24cd9bc
sprandom: fix warning: comparison will always evaluate as true
tomas-winkler-sndk Sep 18, 2025
f5a5f44
Merge branch 'sprandom-tests' of https://github.com/tomas-winkler-snd…
vincentkfu Sep 18, 2025
f2c1d8f
Merge branch 'sprandom-log-fix' of https://github.com/tomas-winkler-s…
vincentkfu Sep 18, 2025
6a39dfa
options: check for NULL input string and fail
axboe Sep 23, 2025
dfc833a
Fixing mingw out of tree builds.
kaimeyer-arcserve Sep 25, 2025
cda2257
Merge branch 'master' of https://github.com/kaimeyer-arcserve/fio
axboe Sep 26, 2025
72fb5b5
engines/io_uring: validate PI on read
stanleyzhang9 Oct 1, 2025
97a91b6
Merge branch 'fix/io_uring-pi-validate' of https://github.com/stanley…
vincentkfu Oct 1, 2025
9806424
REPORTING-BUGS: add note about reports on malicious job files
axboe Oct 4, 2025
d675939
doc: add documentation for uncached buffered I/O
Panky-codes Oct 5, 2025
925a315
Merge branch 'uncached_doc' of https://github.com/Panky-codes/fio
axboe Oct 5, 2025
840957b
test, memcpy: reorder #includes
betonmischer86 Oct 8, 2025
ed31254
Merge branch 'fix-includes' of https://github.com/betonmischer86/fio
axboe Oct 8, 2025
7089300
stat: report zone reset count only when zonemode is set to zbd
kawasaki Oct 9, 2025
b9b306b
stat: report zone reset count in json output format
kawasaki Oct 9, 2025
d200fab
gettime: remove non-clock_gettime fallback code
sitsofe Oct 8, 2025
acce4fc
memory: add cuda 13 support
Oct 9, 2025
98f7e98
Merge branch 'new-cuda-ctx-params' of https://github.com/maxime-peim/fio
axboe Oct 10, 2025
ae3475d
memory: fix typo in cuda < 13 cuCtxCreate()
axboe Oct 10, 2025
0936137
os/linux: sync io_uring.h header for setup flags
axboe Oct 15, 2025
7272fd8
t/io_uring: use IORING_SETUP_NO_SQARRAY if available
axboe Oct 15, 2025
d56aa95
options: Add range validation for log_hist_coarseness
tachyonwill Oct 27, 2025
967de14
Merge branch 'hist_coarseness' of https://github.com/tachyonwill/fio
vincentkfu Oct 28, 2025
6fbe328
configure: support --extra-ldflags
pirDOL Oct 28, 2025
1eb3ade
Merge branch 'master' of https://github.com/pirDOL/fio
vincentkfu Oct 29, 2025
30c2e6e
Merge branch 'clock_gettime' of https://github.com/betonmischer86/fio
vincentkfu Oct 30, 2025
1492830
backend.c: fix async ioengine prep/queue direction mismatch in experi…
yehormalikov Oct 30, 2025
71d47f4
Merge branch 'fix-experimental-verify-iocb-issue' of https://github.c…
vincentkfu Oct 31, 2025
67e7a51
Remove all references to git.kernel.dk
axboe Oct 31, 2025
46b1db4
Fix an URL typo
axboe Oct 31, 2025
9f87cd2
engines/ftruncate: update git tree reference
axboe Oct 31, 2025
dbde7c5
io_u: put io_u->file from requeue in FSYNCING
JeongJonghwi Oct 28, 2025
f5b2f23
Merge branch 'end-fsync-io_u' of https://github.com/JeongJonghwi/fio
vincentkfu Nov 5, 2025
1ad9ac9
ci: switch to macos version 15
axboe Nov 14, 2025
466a2e6
backend: fix zero-numberio in dry-run
minwooim Nov 17, 2025
b2c6231
Merge branch 'fix/zero-numberio' of https://github.com/minwooim/fio
vincentkfu Nov 17, 2025
7c8dbca
ci: work around macOS pip restrictions
vincentkfu Nov 18, 2025
240c070
engines/mmap: support fadvise_hint
geertj Nov 22, 2025
4857911
engines/mmap: fix logic when "offset" > 0
geertj Nov 22, 2025
1a3e01f
engines/mmap: fix full/limited prep logic
geertj Nov 22, 2025
62ab6b9
fio: add sync capability for file operations
Nov 24, 2025
de3d5e6
Merge branch 'mmap-fixes' of https://github.com/geertj/fio
axboe Nov 24, 2025
ceadd92
configure: conditionally add gnutls for libnfs >= 6.0.0
mcgrof Jul 24, 2025
936ef18
fio: refactor steady state validation check
mcgrof Jul 29, 2025
caf3902
fio: refactor duplicate code in steadystate_*_mean functions
mcgrof Jul 29, 2025
e6ef1c1
fio: add latency steady state detection
mcgrof Jul 25, 2025
7f55d2d
fio: add mock test framework for isolated unit testing
mcgrof Jul 29, 2025
950daee
mock-tests: assess per second latency recovery
vincentkfu Oct 20, 2025
909e2cc
backend: fix OOB access in usec_for_io() with DDIR_SYNC
fmayer Dec 8, 2025
26c77cd
Merge branch 'patch-1' of https://github.com/fmayer/fio
axboe Dec 9, 2025
ccce76d
fix musl builds
baloo Dec 14, 2025
9af9614
Merge branch 'baloo/push-lxolyxxkxkpv' of https://github.com/baloo/fio
axboe Dec 14, 2025
9d8c8ec
io_uring: don't segfault if pi_chk isn't specified
calebsander Dec 16, 2025
3a4c1dd
Merge branch 'fix/prchk-segfault' of https://github.com/calebsander/fio
vincentkfu Dec 16, 2025
56078d8
Merge branch '20251023-steady-state-add-latency' of https://github.co…
vincentkfu Dec 18, 2025
2c6ba4f
steadystate: define units for latency measurements
vincentkfu Dec 18, 2025
aaf99c4
t/run-fio-tests: add cleanup option
vincentkfu Dec 18, 2025
d028bdc
test: cleanup test artifacts as we are running
vincentkfu Dec 18, 2025
8bf2370
write_hist_log: do not require ZLIB for non-server instances
alex310110 Dec 29, 2025
e12461d
Merge branch 'master' of https://github.com/alex310110/fio
axboe Dec 29, 2025
8b3d9f2
time: rename in_ramp_time() and ramp_time_over()
jankara Dec 19, 2025
871c9b5
td: Initialize ramp_period_over based on options
jankara Dec 19, 2025
8b13582
eta: Use in_ramp_period() instead of opencoding it
jankara Dec 19, 2025
356e1ca
time: Evaluate ramp up condition once per second
jankara Dec 19, 2025
6ff3276
Add option to specify ramp period by amount of IO
jankara Dec 19, 2025
d0a2fbb
t/io_uring: enable setting an opcode and register opcode filter
axboe Jan 11, 2026
14902fc
windows: fix Y2038 bug caused by 32 bit truncation
CookiePLMonster Jan 10, 2026
119c948
Merge branch 'patch-1' of https://github.com/CookiePLMonster/fio
axboe Jan 11, 2026
adeceb8
Merge branch 'sync-fileop' of https://github.com/struschev/fio
axboe Jan 11, 2026
8802c9d
Add ZBD (Zoned Block Device) support to io_uring engine
Jan 12, 2026
a205b68
init: make fdp_state rand generator always 32 bits
vincentkfu Jan 9, 2026
ae53862
init: make trim_state always a 32-bit random generator
vincentkfu Jan 13, 2026
e9d688d
fio: rename random_state to offset_state
vincentkfu Jan 13, 2026
059e8c6
fio: improve comment for offset_state
vincentkfu Jan 13, 2026
7a1b6f4
filesetup: switch to tausworthe64 for real if limits exceeded
vincentkfu Jan 13, 2026
23a8d27
man: Update the description for `verify_only` explaining phantom writes
gautammenghani Jan 15, 2026
1d282ba
fio: make sure that child process output is comitted
vincentkfu Jan 15, 2026
6f6460e
init: move random seed debug prints
vincentkfu Jan 15, 2026
e2d1cce
test: add test for switching to tausworthe64
vincentkfu Jan 15, 2026
2625269
Merge branch 'io_uring_zbc_support' of https://github.com/mannanal/fio
axboe Jan 20, 2026
067ffa4
engines/rbd: add support for LUKS encryption
Jan 20, 2026
26cb608
Merge branch 'rbd-encryption-support' of https://github.com/Greenpepp…
axboe Jan 20, 2026
bfe306e
Fixups for rbd luks support
axboe Jan 20, 2026
e2e90ae
Merge branch 'issue_1499' of https://github.com/gautammenghani/fio
vincentkfu Jan 23, 2026
13b8ee3
engines/io_uring: don't flag iowait for GET_EVENTS if feasible
axboe Jan 27, 2026
0b554ec
Add option to specify job process comm
robertbaldyga Jan 27, 2026
2d95302
Merge branch 'job-process-comm' of https://github.com/robertbaldyga/fio
axboe Jan 28, 2026
ada82d7
backend: remove premature free of td->eo in parent process
Jan 30, 2026
a50d7ce
Merge branch 'fix-fork-memleak' of https://github.com/malikoyv/fio
axboe Jan 30, 2026
49c1051
fio: sprandom: append newline to error message
tomas-winkler-sndk Feb 2, 2026
5e5975a
Merge branch 'sprandom-fix' of https://github.com/tomas-winkler-sndk/fio
vincentkfu Feb 2, 2026
736c201
workqueue: fix threads stall when running with io_submit_mode offload
chana-zaks-sndk Feb 5, 2026
a8ab726
Merge branch 'offload_fix' of https://github.com/tomas-winkler-sndk/fio
axboe Feb 5, 2026
9387e61
parse: check for NULL input
axboe Feb 8, 2026
d943089
Revert "parse: check for NULL input"
axboe Feb 8, 2026
6783ccc
options: ensure callback handlers handle NULL input
axboe Feb 8, 2026
546875b
SPRandom Cache Size Behavior Implementation
cachyyyk Jan 21, 2026
33822fc
Merge branch 'sprandom-cache-implementation' of https://github.com/ca…
vincentkfu Feb 10, 2026
05b2e9f
fio: bump server version for new option
vincentkfu Feb 10, 2026
0f5f636
fio: Fix error string not matching errno
floatious Feb 6, 2026
355be38
io_u: Fix inconsistent handling of non-fatal errors with option error…
floatious Feb 6, 2026
1a04e57
stat: Remove duplicate space in __show_run_stats()
floatious Feb 6, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
53 changes: 0 additions & 53 deletions .appveyor.yml

This file was deleted.

15 changes: 15 additions & 0 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
Please confirm that your commit message(s) follow these guidelines:

1. First line is a commit title, a descriptive one-liner for the change
2. Empty second line
3. Commit message body that explains why the change is useful. Break lines that
aren't something like a URL at 72-74 chars.
4. Empty line
5. Signed-off-by: Real Name <real@email.com>

Reminders:

1. If you modify struct thread_options, also make corresponding changes in
cconv.c and bump FIO_SERVER_VER in server.h
2. If you change the ioengine interface (hooks, flags, etc), remember to bump
FIO_IOOPS_VERSION in ioengines.h.
31 changes: 31 additions & 0 deletions .github/actions/build-qemu/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
name: 'Build and Install QEMU on Ubuntu'
desription: 'Build QEMU and Install on Ubuntu'

inputs:
version: # What QEMU version to build/install
description: 'QEMU version to build and install'
required: false
default: '9.1.0'


runs:
using: "composite"
steps:
- name: Install QEMU build dependencies
run: sudo apt update && sudo apt-get -qq install libglib2.0-dev libfdt-dev libpixman-1-dev ninja-build flex bison libsdl2-dev libaio-dev python3-tomli libslirp-dev
shell: bash

- name: Build and install QEMU
run: |
wget -nv https://download.qemu.org/qemu-$INPUT_VER.tar.xz
tar xJf qemu-$INPUT_VER.tar.xz
rm qemu-$INPUT_VER.tar.xz
cd qemu-$INPUT_VER
./configure --enable-kvm --target-list=x86_64-softmmu
make -j $(nproc)
sudo make install
cd ..
rm -rf qemu-$INPUT_VER
shell: bash
env:
INPUT_VER: ${{ inputs.version }}
45 changes: 45 additions & 0 deletions .github/actions/create-guest-image/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
name: 'Create guest image'
description: 'Create VM guest image on Ubuntu runner'

inputs:
distro:
description: 'Linux distribution to use for guest image'
required: false
default: 'debian-12'
extra_pkgs:
description: 'Extra packages to install for guest image'
required: false
default:

runs:
using: "composite"
steps:
- name: Install libguestfs
run: sudo apt update && sudo apt-get -qq install libguestfs-tools
shell: bash
- name: Setup steps for virt-builder
run: |
sudo chmod a+r /boot/vmlinuz*
sudo chmod 0666 /dev/kvm
ssh-keygen -t rsa -N "" -f ~/.ssh/id_rsa
shell: bash
- name: Create Debian image
run: |
virt-builder ${{ inputs.distro }} \
--quiet \
--hostname fio-tester \
--ssh-inject root \
--run-command "ssh-keygen -A" \
--run-command "sed -i 's/ens2/enp0s2/g' /etc/network/interfaces" \
--append-line '/etc/environment:PYTHONUNBUFFERED=1' \
--append-line '/etc/environment:GITHUB_SERVER_URL=${{ github.server_url }}' \
--append-line '/etc/environment:GITHUB_REPOSITORY=${{ github.repository }}' \
--append-line '/etc/environment:GITHUB_REF=${{ github.ref }}' \
--append-line '/etc/environment:GITHUB_SHA=${{ github.sha }}' \
--append-line '/etc/environment:GITHUB_JOB=${{ github.job }}' \
--append-line '/etc/environment:EXTRA_PKGS=${{ inputs.extra_pkgs }}' \
--append-line '/etc/environment:CI_TARGET_BUILD=${{ env.CI_TARGET_BUILD }}' \
--append-line '/etc/environment:CI_TARGET_OS=${{ env.CI_TARGET_OS }}'

shell: bash

60 changes: 60 additions & 0 deletions .github/actions/start-vm/action.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,60 @@
name: 'Start QEMU VM'
description: 'Start QEMU virtual machine'

inputs:
qemu: # QEMU binary to use
required: false
default: "qemu-system-x86_64"
image: # VM image file
required: true
ssh_fwd_port: # forward this host port to the guest's SSH port
required: false
default: 2022
options: # Custom QEMU invocation options no \n at the end!
required: false
ram: # how much RAM to allocate to VM
required: false
default: "12G"
host_key: # If true add guest host key to known_hosts
required: false
default: "false"

runs:
using: "composite"
steps:
- name: install wait-for-it
shell: bash
run: sudo apt update && sudo apt-get -qq install wait-for-it
- name: Enable KVM group perms
shell: bash
run: |
echo 'KERNEL=="kvm", GROUP="kvm", MODE="0666", OPTIONS+="static_node=kvm"' | sudo tee /etc/udev/rules.d/99-kvm4all.rules
sudo udevadm control --reload-rules
sudo udevadm trigger --name-match=kvm
- name: Start VM in background
shell: bash
run: |
${{ inputs.qemu }} \
-cpu host \
-drive file=${{ inputs.image }},format=raw,if=virtio \
-enable-kvm \
-smp $(nproc) \
-nographic \
-m ${{ inputs.ram }} \
-display none \
-machine q35,accel=kvm \
-nic user,model=virtio-net-pci,hostfwd=tcp::${{ inputs.ssh_fwd_port }}-:22 \
${{ inputs.options }} \
&
- name: Wait for VM to boot
shell: bash
run: |
wait-for-it localhost:${{ inputs.ssh_fwd_port }} -t 15
sleep 3
- name: Add guest host key to known_hosts
shell: bash
run: |
if echo ${{ inputs.host_key }} | grep -c "true"
then
ssh root@localhost -p ${{ inputs.ssh_fwd_port }} -o StrictHostKeyChecking=no echo
fi
170 changes: 170 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,170 @@
name: CI

on:
push:
pull_request:
workflow_dispatch:
schedule:
- cron: "35 5 * * *" # 5:35 UTC which is 0:35 ET

jobs:
build-containers:
runs-on: ubuntu-latest

strategy:
fail-fast: false
matrix:
container:
- {os: 'debian', dh: 'debian', ver: 'bookworm', target_arch: 'x86_64'}
- {os: 'fedora', dh: 'fedora', ver: '40', target_arch: 'x86_64'}
- {os: 'alma', dh: 'almalinux', ver: '9', target_arch: 'x86_64'}
- {os: 'oracle', dh: 'oraclelinux', ver: '9', target_arch: 'x86_64'}
- {os: 'rocky', dh: 'rockylinux', ver: '9', target_arch: 'x86_64'}
- {os: 'ubuntu', dh: 'ubuntu', ver: 'noble', target_arch: 'i686'}
- {os: 'ubuntu', dh: 'ubuntu', ver: 'noble', target_arch: 'x86_64'}

container:
image: ${{ matrix.container.dh }}:${{ matrix.container.ver }}
env:
CI_TARGET_BUILD: Linux
CI_TARGET_ARCH: ${{ matrix.container.target_arch }}
CI_TARGET_OS: ${{ matrix.container.os }}
CI_TARGET_OS_VER: ${{ matrix.container.ver }}

steps:
- name: Checkout repo
uses: actions/checkout@v4
- name: Install dependencies
run: ./ci/actions-install.sh
- name: Build
run: ./ci/actions-build.sh
- name: Smoke test
run: ./ci/actions-smoke-test.sh
- name: Full test
run: ./ci/actions-full-test.sh

build:
runs-on: ${{ matrix.os }}
strategy:
fail-fast: false
matrix:
build:
- linux-gcc
- linux-clang
- macos
- linux-i686-gcc
- android
- windows-cygwin-64
- windows-cygwin-32
- windows-msys2-64
include:
- build: linux-gcc
os: ubuntu-22.04
cc: gcc
- build: linux-clang
os: ubuntu-22.04
cc: clang
- build: macos
os: macos-15
- build: linux-i686-gcc
os: ubuntu-22.04
arch: i686
- build: android
os: ubuntu-22.04
arch: aarch64-linux-android32
- build: android-recovery
os: ubuntu-22.04
arch: aarch64-linux-android32
- build: windows-cygwin-64
os: windows-latest
arch: x86_64
installer_arch: x64
shell: bash
- build: windows-cygwin-32
os: windows-latest
arch: i686
installer_arch: x86
shell: bash
- build: windows-msys2-64
os: windows-latest
cc: clang
arch: x86_64
installer_arch: x64
shell: msys2

env:
CI_TARGET_BUILD: ${{ matrix.build }}
CI_TARGET_ARCH: ${{ matrix.arch }}
CC: ${{ matrix.cc }}

steps:
- name: git config line endings (Windows)
if: ${{ contains( matrix.build, 'windows' ) }}
run: git config --global core.autocrlf input
- name: Checkout repo
uses: actions/checkout@v4
- name: Install Cygwin toolchain (Windows)
if: ${{ startsWith(matrix.build, 'windows-cygwin') }}
uses: cygwin/cygwin-install-action@master
with:
packages: >
mingw64-${{matrix.arch}}-binutils
mingw64-${{matrix.arch}}-CUnit
mingw64-${{matrix.arch}}-curl
mingw64-${{matrix.arch}}-dlfcn
mingw64-${{matrix.arch}}-gcc-core
mingw64-${{matrix.arch}}-headers
mingw64-${{matrix.arch}}-runtime
mingw64-${{matrix.arch}}-zlib

- name: Install msys2 toolchain (Windows)
if: ${{ startsWith(matrix.build, 'windows-msys2') }}
uses: msys2/setup-msys2@v2
with:
install: >
git
base-devel
mingw-w64-${{matrix.arch}}-clang
mingw-w64-${{matrix.arch}}-cunit
mingw-w64-${{matrix.arch}}-toolchain
mingw-w64-${{matrix.arch}}-lld
mingw-w64-${{matrix.arch}}-python-scipy
mingw-w64-${{matrix.arch}}-python-six
mingw-w64-${{matrix.arch}}-python-statsmodels
mingw-w64-${{matrix.arch}}-python-sphinx

- name: install bash 4 (macOS)
if: ${{ contains( matrix.build, 'macOS' ) }}
run: HOMEBREW_NO_AUTO_UPDATE=1 brew install bash
- name: Install dependencies
run: ${{matrix.shell}} ./ci/actions-install.sh
if: ${{ !contains( matrix.build, 'msys2' ) }}
- name: Build
run: ${{matrix.shell}} ./ci/actions-build.sh
- name: Build installer (Windows)
if: ${{ contains( matrix.build, 'windows' ) }}
shell: cmd
run: |
cd os\windows
dobuild.cmd ${{ matrix.installer_arch }}
cd ..\..

- name: Upload installer as artifact (Windows)
if: ${{ contains( matrix.build, 'windows' ) }}
uses: actions/upload-artifact@v4
with:
name: ${{ matrix.build }}-installer
path: os\windows\*.msi
- name: Upload installer as release for tagged builds (Windows)
uses: softprops/action-gh-release@v1
if: ${{ startsWith(github.ref, 'refs/tags/') && startsWith(matrix.build, 'windows-cygwin') }}
with:
files: os/windows/*.msi
- name: Remove dependency files to resolve Makefile Cygwin sed issue (Windows)
if: ${{ startsWith(matrix.build, 'windows-cygwin') }}
run: rm *.d */*.d */*/*.d
shell: bash
- name: Smoke test
run: ${{matrix.shell}} ./ci/actions-smoke-test.sh
- name: Full test
run: ${{matrix.shell}} ./ci/actions-full-test.sh
Loading