the job to exit. The same format as rate is used for read vs
write seperation.
+max_latency=int If set, fio will exit the job if it exceeds this maximum
+ latency. It will exit with an ETIME error.
+
ratecycle=int Average bandwidth for 'rate' and 'ratemin' over this number
of milliseconds.
Average bandwidth for \fBrate\fR and \fBratemin\fR over this number of
milliseconds. Default: 1000ms.
.TP
+.BI max_latency \fR=\fPint
+If set, fio will exit the job if it exceeds this maximum latency. It will exit
+with an ETIME error.
+.TP
.BI cpumask \fR=\fPint
Set CPU affinity for this job. \fIint\fR is a bitmask of allowed CPUs the job
may run on. See \fBsched_setaffinity\fR\|(2).
enum fio_memtype mem_type;
unsigned int mem_align;
+ unsigned int max_latency;
+
unsigned int stonewall;
unsigned int new_group;
unsigned int numjobs;
tusec = utime_since(&io_u->start_time, &icd->time);
add_lat_sample(td, idx, tusec, bytes);
+
+ if (td->o.max_latency && tusec > td->o.max_latency) {
+ if (!td->error)
+ log_err("fio: latency of %lu usec exceeds specified max (%u usec)\n", tusec, td->o.max_latency);
+ td_verror(td, ETIME, "max latency exceeded");
+ icd->error = ETIME;
+ }
}
if (!td->o.disable_clat) {
.def = "1000",
.parent = "rate",
},
+ {
+ .name = "max_latency",
+ .type = FIO_OPT_INT,
+ .off1 = td_var_offset(max_latency),
+ .help = "Maximum tolerated IO latency (usec)",
+ },
{
.name = "invalidate",
.type = FIO_OPT_BOOL,