On Aug 28, 2024 / 11:56, Nick Neumann wrote: > One quick observation though I'm guessing you probably have already > checked it. It would be good to be sure the performance after this > refactor for outputting the log files is similar or bettter, due to > how long it can take to output per-I/O log files. Good question. To understand the performance, I used gperf and compared runtime of flush_samples() with and without the series. I built the fio with these commands, $ LDFLAGS=-pg ./configure --extra-cflags="-pg -O0" $ make -j$(nproc) Then ran fio and gperf as follows: $ ./fio --name=w --filename=/dev/zero --rw=read --bs=4k --size=128M --time_based --runtime=1m --write_lat_log=lat --log_offset=1 --thread=1 $ gprof -p ./fio ./gmon.out | grep flush_samples 4.96 3.73 0.63 59 0.01 0.02 flush_samples The second number "3.73 "is the cumulative runtime of flush_samples(). It was 3.73 seconds with the series, and 3.50 seconds without the series. This indicates that around 1% overhead is added to the I/O log file output. Fio users will need to wait a little bit longer to get the I/O log files after the fio job completion. I hope this overhead is acceptable.