const int no_reduce = !gtod_reduce(td);
unsigned long lusec = 0;
+ if (td->parent)
+ td = td->parent;
+
if (no_reduce)
lusec = utime_since(&io_u->issue_time, &icd->time);
io_u_mark_latency(td, lusec);
}
- if (td->parent)
- td = td->parent;
-
if (!td->o.disable_bw)
add_bw_sample(td, idx, bytes, &icd->time);
unsigned long slat_time;
slat_time = utime_since(&io_u->start_time, &io_u->issue_time);
+
+ if (td->parent)
+ td = td->parent;
+
add_slat_sample(td, io_u->ddir, slat_time, io_u->xfer_buflen,
io_u->offset);
}
if (!ddir_rw(ddir))
return;
+ td_io_u_lock(td);
+
add_stat_sample(&ts->clat_stat[ddir], usec);
if (td->clat_log)
if (ts->clat_percentiles)
add_clat_percentile_sample(ts, usec, ddir);
+
+ td_io_u_unlock(td);
}
void add_slat_sample(struct thread_data *td, enum fio_ddir ddir,
if (!ddir_rw(ddir))
return;
+ td_io_u_lock(td);
+
add_stat_sample(&ts->slat_stat[ddir], usec);
if (td->slat_log)
add_log_sample(td, td->slat_log, usec, ddir, bs, offset);
+
+ td_io_u_unlock(td);
}
void add_lat_sample(struct thread_data *td, enum fio_ddir ddir,
if (!ddir_rw(ddir))
return;
+ td_io_u_lock(td);
+
add_stat_sample(&ts->lat_stat[ddir], usec);
if (td->lat_log)
add_log_sample(td, td->lat_log, usec, ddir, bs, offset);
+
+ td_io_u_unlock(td);
}
void add_bw_sample(struct thread_data *td, enum fio_ddir ddir, unsigned int bs,