X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=eta.c;h=a724fe63936bc64caa0719871c9ff90cfb522c49;hb=5ffbb6258baaadff19496403c89d0bf7ccf0bf79;hp=238a0af13079c433daab4512ccabb45c9ce226cc;hpb=95820b6e6c92025df8d89c0bf39b174e53137c41;p=fio.git diff --git a/eta.c b/eta.c index 238a0af1..a724fe63 100644 --- a/eta.c +++ b/eta.c @@ -139,6 +139,15 @@ static int thread_eta(struct thread_data *td) bytes_total = td->fill_device_size; } + if (td->o.zone_size && td->o.zone_skip && bytes_total) { + unsigned int nr_zones; + uint64_t zone_bytes; + + zone_bytes = bytes_total + td->o.zone_size + td->o.zone_skip; + nr_zones = (zone_bytes - 1) / (td->o.zone_size + td->o.zone_skip); + bytes_total -= nr_zones * td->o.zone_skip; + } + /* * if writing and verifying afterwards, bytes_total will be twice the * size. In a mixed workload, verify phase will be the size of the @@ -156,9 +165,6 @@ static int thread_eta(struct thread_data *td) bytes_total <<= 1; } - if (td->o.zone_size && td->o.zone_skip) - bytes_total /= (td->o.zone_skip / td->o.zone_size); - if (td->runstate == TD_RUNNING || td->runstate == TD_VERIFYING) { double perc, perc_t; @@ -285,7 +291,8 @@ int calc_thread_status(struct jobs_eta *je, int force) static struct timeval rate_prev_time, disp_prev_time; if (!force) { - if (output_format != FIO_OUTPUT_NORMAL) + if (output_format != FIO_OUTPUT_NORMAL && + f_out == stdout) return 0; if (temp_stall_ts || eta_print == FIO_ETA_NEVER) return 0;