fio: add serialize_overlap option
authorSitsofe Wheeler <sitsofe@yahoo.com>
Sun, 23 Apr 2017 21:54:54 +0000 (22:54 +0100)
committerSitsofe Wheeler <sitsofe@yahoo.com>
Mon, 14 Aug 2017 03:43:15 +0000 (04:43 +0100)
commit997b5680d139ce82c2034ba3a0d602cfd778b89b
treeb3b10299ef067433c7bd3c7bdc41d9d17be2de33
parenta94a977497636bdcbef7106ce3617c96c8ad66bd
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>
HOWTO
backend.c
cconv.c
fio.1
init.c
options.c
thread_options.h