Fix zoning issue with seq-io and randommap issue
authorgvkovai <gv.kovai@gmail.com>
Tue, 12 Sep 2017 15:17:40 +0000 (11:17 -0400)
committergvkovai <gv.kovai@gmail.com>
Thu, 14 Sep 2017 16:34:39 +0000 (12:34 -0400)
commit224b3093cc2106233dc449871cb3367e6029b1b0
treedc1d4b312f5ce731a9e9e29ea7d809ef15879c00
parentc6fa271e32f08f35d7fc25272e77c0f7ee17bfec
Fix zoning issue with seq-io and randommap issue

The case of zonerange < zonesize scenario was not handled
correctly earlier. When zonesize > zonerange, IO must continue
in the same zonerange of the size zonesize for seq-io.

For random io, zonesize > zonerange leads to sequential io
after first zonerange size of io is done when 'norandommap'
is not set. In this case, map needs to be reset for every
zonerange size of IO on a zone.

<seqzoneread.fio>
=====
[global]
ioengine=libaio
direct=1
time_based
disk_util=0
continue_on_error=all
rate_process=poisson
write_iolog=offsetlog
[db-dss1]
bs=8K
filesize=524288M
zonesize=9M
zonerange=3M
zoneskip=1M
filename=/dev/sdb
rw=read
iodepth=1
rate_iops=100
======
sudo ./fio --runtime 120 --debug=file,io,blktrace --write_iops_log=/tmp/IOPS
           --write_lat_log=/tmp/LAT --status-interval=10
           --output=/tmp/fio.out --output-format=json seqzoneread.fio
see issue for more details and plots which describes the issue and fix.

fixes #450 .
io_u.c