sprintf(foo, "%s", tmp);
}
- if (td->ioscheduler && !td->sysfs_root)
+ if (td->o.ioscheduler && !td->sysfs_root)
td->sysfs_root = strdup(foo);
disk_util_add(dev, foo);
struct fio_file *f;
unsigned int i;
- if (!td->do_disk_util ||
+ if (!td->o.do_disk_util ||
(td->io_ops->flags & (FIO_DISKLESSIO | FIO_NODISKUTIL)))
return;
for (i = 0; i < FIO_IO_U_MAP_NR; i++) {
io_u_dist[i] = (double) ts->io_u_map[i] / (double) ts_total_io_u(ts);
io_u_dist[i] *= 100.0;
+ if (io_u_dist[i] < 0.1 && ts->io_u_map[i])
+ io_u_dist[i] = 0.1;
}
}
for (i = 0; i < FIO_IO_U_LAT_NR; i++) {
io_u_lat[i] = (double) ts->io_u_lat[i] / (double) ts_total_io_u(ts);
io_u_lat[i] *= 100.0;
+ if (io_u_lat[i] < 0.01 && ts->io_u_lat[i])
+ io_u_lat[i] = 0.01;
}
}
log_info(" IO depths : 1=%3.1f%%, 2=%3.1f%%, 4=%3.1f%%, 8=%3.1f%%, 16=%3.1f%%, 32=%3.1f%%, >=64=%3.1f%%\n", io_u_dist[0], io_u_dist[1], io_u_dist[2], io_u_dist[3], io_u_dist[4], io_u_dist[5], io_u_dist[6]);
- log_info(" lat (msec): 2=%3.1f%%, 4=%3.1f%%, 10=%3.1f%%, 20=%3.1f%%, 50=%3.1f%%, 100=%3.1f%%\n", io_u_lat[0], io_u_lat[1], io_u_lat[2], io_u_lat[3], io_u_lat[4], io_u_lat[5]);
- log_info(" lat (msec): 250=%3.1f%%, 500=%3.1f%%, 750=%3.1f%%, 1000=%3.1f%%, >=2000=%3.1f%%\n", io_u_lat[6], io_u_lat[7], io_u_lat[8], io_u_lat[9], io_u_lat[10]);
+ log_info(" lat (msec): 2=%3.2f%%, 4=%3.2f%%, 10=%3.2f%%, 20=%3.2f%%, 50=%3.2f%%, 100=%3.2f%%\n", io_u_lat[0], io_u_lat[1], io_u_lat[2], io_u_lat[3], io_u_lat[4], io_u_lat[5]);
+ log_info(" lat (msec): 250=%3.2f%%, 500=%3.2f%%, 750=%3.2f%%, 1000=%3.2f%%, >=2000=%3.2f%%\n", io_u_lat[6], io_u_lat[7], io_u_lat[8], io_u_lat[9], io_u_lat[10]);
}
static void show_ddir_status_terse(struct thread_stat *ts,
log_info(";%3.1f%%;%3.1f%%;%3.1f%%;%3.1f%%;%3.1f%%;%3.1f%%;%3.1f%%", io_u_dist[0], io_u_dist[1], io_u_dist[2], io_u_dist[3], io_u_dist[4], io_u_dist[5], io_u_dist[6]);
- log_info(";%3.1f%%;%3.1f%%;%3.1f%%;%3.1f%%;%3.1f%%;%3.1f%%\n", io_u_lat[0], io_u_lat[1], io_u_lat[2], io_u_lat[3], io_u_lat[4], io_u_lat[5]);
- log_info(";%3.1f%%;%3.1f%%;%3.1f%%;%3.1f%%;%3.1f%%", io_u_lat[6], io_u_lat[7], io_u_lat[8], io_u_lat[9], io_u_lat[10]);
+ log_info(";%3.2f%%;%3.2f%%;%3.2f%%;%3.2f%%;%3.2f%%;%3.2f%%\n", io_u_lat[0], io_u_lat[1], io_u_lat[2], io_u_lat[3], io_u_lat[4], io_u_lat[5]);
+ log_info(";%3.2f%%;%3.2f%%;%3.2f%%;%3.2f%%;%3.2f%%", io_u_lat[6], io_u_lat[7], io_u_lat[8], io_u_lat[9], io_u_lat[10]);
if (ts->description)
log_info(";%s", ts->description);
nr_ts = 0;
last_ts = -1;
for_each_td(td, i) {
- if (!td->group_reporting) {
+ if (!td->o.group_reporting) {
nr_ts++;
continue;
}
last_ts = -1;
idx = 0;
for_each_td(td, i) {
- if (idx && (!td->group_reporting ||
- (td->group_reporting && last_ts != td->groupid))) {
+ if (idx && (!td->o.group_reporting ||
+ (td->o.group_reporting && last_ts != td->groupid))) {
idx = 0;
j++;
}
/*
* These are per-group shared already
*/
- ts->name = td->name;
- ts->description = td->description;
+ ts->name = td->o.name;
+ ts->description = td->o.description;
ts->groupid = td->groupid;
/*
is->min_val = data;
delta = val - is->mean;
- is->mean += delta / (is->samples + 1.0);
- is->S += delta * (val - is->mean);
+ if (delta) {
+ is->mean += delta / (is->samples + 1.0);
+ is->S += delta * (val - is->mean);
+ }
is->samples++;
}
unsigned long spent = mtime_since(&ts->stat_sample_time[ddir], t);
unsigned long rate;
- if (spent < td->bw_avg_time)
+ if (spent < td->o.bw_avg_time)
return;
rate = (td->this_io_bytes[ddir] - ts->stat_io_bytes[ddir]) / spent;