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.
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;
* 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;
}
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);