Write samples in io_stat does not be counted with rw=randread, vice versa.
Then, in sum_stat() function, it will cause 0/0 in calculating mean and S,
and 'nan' is printed. So it should return immediately when src->samples is
equal to 0.
the error result is as follows:
write: io=8328.0KB, bw=1582.7KB/s, iops=395 , runt= 5262msec
clat (usec): min=58 , max=293353 , avg= -nan, stdev= -nan
lat (usec): min=59 , max=293353 , avg= -nan, stdev= -nan
bw (KB/s) : min= 92, max= 804, per=-nan%, avg= -nan, stdev= -nan
the configuration file used:
[global]
direct=1
ioengine=psync
bs=4k
filename=/dev/sdb1
runtime=5
group_reporting
loops=50
[read]
rw=randread
numjobs=8
[write]
rw=randwrite
numjobs=8
CC: Jens Axboe <jaxboe@fusionio.com>
CC: Yu-ju Hong <yjhong@google.com>
Signed-off-by: Zheng Liu <wenqing.lz@taobao.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
{
double mean, S;
+ if (src->samples == 0)
+ return;
+
dst->min_val = min(dst->min_val, src->min_val);
dst->max_val = max(dst->max_val, src->max_val);