td->this_io_bytes[idx] += bytes;
if (ramp_time_over(td)) {
- if (!td->o.disable_clat || !td->o.disable_bw ||
- __should_check_rate(td, idx))
- usec = utime_since(&io_u->issue_time,
+ unsigned long uninitialized_var(lusec);
+ unsigned long uninitialized_var(rusec);
+
+ if (!td->o.disable_clat || !td->o.disable_bw)
+ lusec = utime_since(&io_u->issue_time,
+ &icd->time);
+ if (__should_check_rate(td, idx) ||
+ __should_check_rate(td, idx ^ 1))
+ rusec = utime_since(&io_u->start_time,
&icd->time);
if (!td->o.disable_clat) {
add_clat_sample(td, idx, usec, bytes);
- io_u_mark_latency(td, usec);
+ io_u_mark_latency(td, lusec);
}
if (!td->o.disable_bw)
add_bw_sample(td, idx, bytes, &icd->time);
- if (__should_check_rate(td, idx))
- td->rate_pending_usleep[idx] += (long) td->rate_usec_cycle[idx] - usec;
+ if (__should_check_rate(td, idx)) {
+ td->rate_pending_usleep[idx] +=
+ (long) td->rate_usec_cycle[idx] - rusec;
+ }
if (__should_check_rate(td, idx ^ 1))
- td->rate_pending_usleep[idx ^ 1] -= usec;
+ td->rate_pending_usleep[idx ^ 1] -= rusec;
}
if (td_write(td) && idx == DDIR_WRITE &&
unsigned long slat_time;
slat_time = utime_since(&io_u->start_time, &io_u->issue_time);
- add_slat_sample(td, io_u->ddir, io_u->xfer_buflen, slat_time);
+ add_slat_sample(td, io_u->ddir, slat_time, io_u->xfer_buflen);
}
}