fio: add serialize_overlap option
If this isn't set (the default) fio can submit write I/Os that overlap
other in-flight I/Os leading to potential data races. For example the
following job frequently fails at the verification stage:
./fio --random_distribution=zipf:1.6 --direct=1 --filename \
/tmp/fiofile --ioengine=posixaio --iodepth=32 --size=20M --bs=4k \
--rw=randwrite --verify=crc32c --name=verifyoverlap
When serialize_overlap=1 fio avoids creating such races.
Thanks to Rachel Lunnon (StorMagic) for helping me debug the initial
version of this!
Fixes: https://github.com/axboe/fio/issues/335
v2: Fix merge conflict and add missing conversion.
v3: Add man page, fix serialize_overlap disabling, improve commit
message.
Tested-by: Jeff Furlong <jeff.furlong@wdc.com>
Signed-off-by: Sitsofe Wheeler <sitsofe@yahoo.com>