fio: reset more counters when ramp time has elapsed
authorVincent Fu <vincent.fu@wdc.com>
Thu, 18 Oct 2018 20:42:54 +0000 (16:42 -0400)
committerJens Axboe <axboe@kernel.dk>
Thu, 18 Oct 2018 21:33:05 +0000 (15:33 -0600)
Currently,

fio --name=test --ramp_time=2 --time_based=1 --runtime=2s --size=1M

will produce an output line like

  IO depths    : 1=184.7%, 2=0.0%, 4=0.0%, 8=0.0%, 16=0.0%, 32=0.0%, >=64=0.0%

184.7% appears because the denominator used in the IO depth calculation
is reset at the conclusion of ramp_time but the numerator is not.
Latency and other IO depth statistics also include data from IOs
completed during ramp time. This patch resets these counters when ramp
time is over.

Tested-by: Sebastien Boisvert <sboisvert@gydle.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
time.c

diff --git a/time.c b/time.c
index c8876829a367ede755453f6b255b2f4139ee8a74..1999969955b2828d6a9d38b425147b5ac3b5babf 100644 (file)
--- a/time.c
+++ b/time.c
@@ -118,6 +118,7 @@ bool ramp_time_over(struct thread_data *td)
        if (utime_since_now(&td->epoch) >= td->o.ramp_time) {
                td->ramp_time_over = true;
                reset_all_stats(td);
+               reset_io_stats(td);
                td_set_runstate(td, TD_RAMP);
 
                /*