all jobs in a file will be part of the same reporting group, unless
separated by a :option:`stonewall`.
+.. option:: stats
+
+ By default, fio collects and shows final output results for all jobs
+ that run. If this option is set to 0, then fio will ignore it in
+ the final stat output.
+
.. option:: write_bw_log=str
If given, write a bandwidth log for this job. Can be used to store data of
o->ioprio_class = le32_to_cpu(top->ioprio_class);
o->file_service_type = le32_to_cpu(top->file_service_type);
o->group_reporting = le32_to_cpu(top->group_reporting);
+ o->stats = le32_to_cpu(top->stats);
o->fadvise_hint = le32_to_cpu(top->fadvise_hint);
o->fallocate_mode = le32_to_cpu(top->fallocate_mode);
o->zero_buffers = le32_to_cpu(top->zero_buffers);
top->ioprio_class = cpu_to_le32(o->ioprio_class);
top->file_service_type = cpu_to_le32(o->file_service_type);
top->group_reporting = cpu_to_le32(o->group_reporting);
+ top->stats = cpu_to_le32(o->stats);
top->fadvise_hint = cpu_to_le32(o->fadvise_hint);
top->fallocate_mode = cpu_to_le32(o->fallocate_mode);
top->zero_buffers = cpu_to_le32(o->zero_buffers);
Start a new reporting group. If not given, all jobs in a file will be part
of the same reporting group, unless separated by a stonewall.
.TP
+.BI stats \fR=\fPbool
+By default, fio collects and shows final output results for all jobs that run.
+If this option is set to 0, then fio will ignore it in the final stat output.
+.TP
.BI numjobs \fR=\fPint
Number of clones (processes/threads performing the same workload) of this job.
Default: 1.
if (td->parent)
td = td->parent;
+ if (!td->o.stats)
+ return;
+
if (no_reduce)
lusec = utime_since(&io_u->issue_time, &icd->time);
*/
void io_u_queued(struct thread_data *td, struct io_u *io_u)
{
- if (!td->o.disable_slat && ramp_time_over(td)) {
+ if (!td->o.disable_slat && ramp_time_over(td) && td->o.stats) {
unsigned long slat_time;
slat_time = utime_since(&io_u->start_time, &io_u->issue_time);
.category = FIO_OPT_C_STAT,
.group = FIO_OPT_G_INVALID,
},
+ {
+ .name = "stats",
+ .lname = "Stats",
+ .type = FIO_OPT_BOOL,
+ .off1 = offsetof(struct thread_options, stats),
+ .help = "Enable collection of stats",
+ .def = "1",
+ .category = FIO_OPT_C_STAT,
+ .group = FIO_OPT_G_INVALID,
+ },
{
.name = "zero_buffers",
.lname = "Zero I/O buffers",
}
if (last_ts == td->groupid)
continue;
+ if (!td->o.stats)
+ continue;
last_ts = td->groupid;
nr_ts++;
last_ts = -1;
idx = 0;
for_each_td(td, i) {
+ if (!td->o.stats)
+ continue;
if (idx && (!td->o.group_reporting ||
(td->o.group_reporting && last_ts != td->groupid))) {
idx = 0;
fio_gettime(&now, NULL);
for_each_td(td, i) {
+ if (!td->o.stats)
+ continue;
if (in_ramp_time(td) ||
!(td->runstate == TD_RUNNING || td->runstate == TD_VERIFYING)) {
next = min(td->o.iops_avg_time, td->o.bw_avg_time);
unsigned int ioprio_class;
unsigned int file_service_type;
unsigned int group_reporting;
+ unsigned int stats;
unsigned int fadvise_hint;
unsigned int fadvise_stream;
enum fio_fallocate_mode fallocate_mode;
uint32_t ioprio_class;
uint32_t file_service_type;
uint32_t group_reporting;
+ uint32_t stats;
uint32_t fadvise_hint;
uint32_t fadvise_stream;
uint32_t fallocate_mode;
uint64_t trim_backlog;
uint32_t clat_percentiles;
uint32_t percentile_precision;
- uint32_t padding; /* REMOVE ME when possible to maintain alignment */
fio_fp64_t percentile_list[FIO_IO_U_LIST_MAX_LEN];
uint8_t read_iolog_file[FIO_TOP_STR_MAX];