X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=eta.c;h=e1cced4643873a1e1388ac3c9b27bc0eeb904e26;hb=f67bbe85d8e1274163bb28bd870371ca0d8d0d95;hp=53dcc93aa4d6b157d7d64037d34ad99526cb10ce;hpb=0b9d69ecb14045cf3b2622ae922756b9889b25e6;p=fio.git diff --git a/eta.c b/eta.c index 53dcc93a..e1cced46 100644 --- a/eta.c +++ b/eta.c @@ -7,7 +7,7 @@ #include "fio.h" -static char run_str[MAX_JOBS + 1]; +static char run_str[REAL_MAX_JOBS + 1]; /* * Sets the status of the 'td' in the printed status map. @@ -110,6 +110,13 @@ static int thread_eta(struct thread_data *td) bytes_total = td->total_io_size; + if (td->o.fill_device && td->o.size == -1ULL) { + if (!td->fill_device_size || td->fill_device_size == -1ULL) + return 0; + + bytes_total = td->fill_device_size; + } + /* * if writing, bytes_total will be twice the size. If mixing, * assume a 50/50 split and thus bytes_total will be 50% larger. @@ -124,9 +131,6 @@ static int thread_eta(struct thread_data *td) if (td->o.zone_size && td->o.zone_skip) bytes_total /= (td->o.zone_skip / td->o.zone_size); - if (td->o.fill_device && td->o.size == -1ULL) - return 0; - if (td->runstate == TD_RUNNING || td->runstate == TD_VERIFYING) { double perc, perc_t; @@ -157,12 +161,13 @@ static int thread_eta(struct thread_data *td) * if given, otherwise assume it'll run at the specified rate. */ if (td->o.timeout) { - t_eta = td->o.timeout + td->o.start_delay; + t_eta = td->o.timeout + td->o.start_delay + + td->o.ramp_time; if (in_ramp_time(td)) { unsigned long ramp_left; - ramp_left = mtime_since_now(&td->start); + ramp_left = mtime_since_now(&td->epoch); ramp_left = (ramp_left + 999) / 1000; if (ramp_left <= t_eta) t_eta -= ramp_left; @@ -324,7 +329,11 @@ void print_thread_status(void) } disp_time = mtime_since(&disp_prev_time, &now); - if (disp_time < 1000) + + /* + * Allow a little slack, the target is to print it every 1000 msecs + */ + if (disp_time < 900) return; calc_rate(disp_time, io_bytes, disp_io_bytes, rate); @@ -382,7 +391,7 @@ void print_thread_status(void) fflush(stdout); } -void print_status_init(int thread_number) +void print_status_init(int thr_number) { - run_str[thread_number] = 'P'; + run_str[thr_number] = 'P'; }