X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=eta.c;h=39241c5aaf5a529dee695e86ef09c5c17d1efb15;hp=31028dd840976e4d1137824c1101269351ec7b2a;hb=36361ebb75a8f543aa49ff4f3ee49274261da074;hpb=317b95d07d4921d2594a1be6e014c9c2d062fe75 diff --git a/eta.c b/eta.c index 31028dd8..39241c5a 100644 --- a/eta.c +++ b/eta.c @@ -118,13 +118,19 @@ static int thread_eta(struct thread_data *td, unsigned long elapsed) bytes_total /= (td->o.zone_skip / td->o.zone_size); if (td->runstate == TD_RUNNING || td->runstate == TD_VERIFYING) { - double perc; + double perc, perc_t; bytes_done = td->io_bytes[DDIR_READ] + td->io_bytes[DDIR_WRITE]; perc = (double) bytes_done / (double) bytes_total; if (perc > 1.0) perc = 1.0; + if (td->o.time_based) { + perc_t = (double) elapsed / (double) td->o.timeout; + if (perc_t < perc) + perc = perc_t; + } + eta_sec = (unsigned long) (elapsed * (1.0 / perc)) - elapsed; if (td->o.timeout && eta_sec > (td->o.timeout - elapsed))