Lines Matching refs:ddir
388 int ddir, struct buf_output *out) in show_ddir_status() argument
397 assert(ddir_rw(ddir)); in show_ddir_status()
399 if (!ts->runtime[ddir]) in show_ddir_status()
403 runt = ts->runtime[ddir]; in show_ddir_status()
405 bw = (1000 * ts->io_bytes[ddir]) / runt; in show_ddir_status()
406 io_p = num2str(ts->io_bytes[ddir], 4, 1, i2p, N2S_BYTE); in show_ddir_status()
410 iops = (1000 * (uint64_t)ts->total_io_u[ddir]) / runt; in show_ddir_status()
414 rs->unified_rw_rep ? "mixed" : str[ddir], in show_ddir_status()
416 (unsigned long long) ts->runtime[ddir]); in show_ddir_status()
423 if (calc_lat(&ts->slat_stat[ddir], &min, &max, &mean, &dev)) in show_ddir_status()
425 if (calc_lat(&ts->clat_stat[ddir], &min, &max, &mean, &dev)) in show_ddir_status()
427 if (calc_lat(&ts->lat_stat[ddir], &min, &max, &mean, &dev)) in show_ddir_status()
431 show_clat_percentiles(ts->io_u_plat[ddir], in show_ddir_status()
432 ts->clat_stat[ddir].samples, in show_ddir_status()
436 if (calc_lat(&ts->bw_stat[ddir], &min, &max, &mean, &dev)) { in show_ddir_status()
456 if (rs->agg[ddir]) { in show_ddir_status()
457 p_of_agg = mean * 100 / (double) rs->agg[ddir]; in show_ddir_status()
818 struct group_run_stats *rs, int ddir, in show_ddir_status_terse() argument
828 assert(ddir_rw(ddir)); in show_ddir_status_terse()
831 if (ts->runtime[ddir]) { in show_ddir_status_terse()
832 uint64_t runt = ts->runtime[ddir]; in show_ddir_status_terse()
834 bw = ((1000 * ts->io_bytes[ddir]) / runt) / 1024; /* KiB/s */ in show_ddir_status_terse()
835 iops = (1000 * (uint64_t) ts->total_io_u[ddir]) / runt; in show_ddir_status_terse()
839 (unsigned long long) ts->io_bytes[ddir] >> 10, bw, iops, in show_ddir_status_terse()
840 (unsigned long long) ts->runtime[ddir]); in show_ddir_status_terse()
842 if (calc_lat(&ts->slat_stat[ddir], &min, &max, &mean, &dev)) in show_ddir_status_terse()
847 if (calc_lat(&ts->clat_stat[ddir], &min, &max, &mean, &dev)) in show_ddir_status_terse()
853 len = calc_clat_percentiles(ts->io_u_plat[ddir], in show_ddir_status_terse()
854 ts->clat_stat[ddir].samples, in show_ddir_status_terse()
868 if (calc_lat(&ts->lat_stat[ddir], &min, &max, &mean, &dev)) in show_ddir_status_terse()
876 if (calc_lat(&ts->bw_stat[ddir], &min, &max, &mean, &dev)) { in show_ddir_status_terse()
879 if (rs->agg[ddir]) { in show_ddir_status_terse()
880 p_of_agg = mean * 100 / (double) rs->agg[ddir]; in show_ddir_status_terse()
891 struct group_run_stats *rs, int ddir, struct json_object *parent) in add_ddir_status_json() argument
904 assert(ddir_rw(ddir)); in add_ddir_status_json()
906 if (ts->unified_rw_rep && ddir != DDIR_READ) in add_ddir_status_json()
911 ts->unified_rw_rep ? "mixed" : ddirname[ddir], dir_object); in add_ddir_status_json()
915 if (ts->runtime[ddir]) { in add_ddir_status_json()
916 uint64_t runt = ts->runtime[ddir]; in add_ddir_status_json()
918 bw = ((1000 * ts->io_bytes[ddir]) / runt) / 1024; /* KiB/s */ in add_ddir_status_json()
919 iops = (1000.0 * (uint64_t) ts->total_io_u[ddir]) / runt; in add_ddir_status_json()
922 json_object_add_value_int(dir_object, "io_bytes", ts->io_bytes[ddir] >> 10); in add_ddir_status_json()
925 json_object_add_value_int(dir_object, "runtime", ts->runtime[ddir]); in add_ddir_status_json()
926 json_object_add_value_int(dir_object, "total_ios", ts->total_io_u[ddir]); in add_ddir_status_json()
927 json_object_add_value_int(dir_object, "short_ios", ts->short_io_u[ddir]); in add_ddir_status_json()
928 json_object_add_value_int(dir_object, "drop_ios", ts->drop_io_u[ddir]); in add_ddir_status_json()
930 if (!calc_lat(&ts->slat_stat[ddir], &min, &max, &mean, &dev)) { in add_ddir_status_json()
941 if (!calc_lat(&ts->clat_stat[ddir], &min, &max, &mean, &dev)) { in add_ddir_status_json()
953 len = calc_clat_percentiles(ts->io_u_plat[ddir], in add_ddir_status_json()
954 ts->clat_stat[ddir].samples, in add_ddir_status_json()
975 if (ts->io_u_plat[ddir][i]) { in add_ddir_status_json()
977 json_object_add_value_int(clat_bins_object, (const char *)buf, ts->io_u_plat[ddir][i]); in add_ddir_status_json()
982 if (!calc_lat(&ts->lat_stat[ddir], &min, &max, &mean, &dev)) { in add_ddir_status_json()
995 if (calc_lat(&ts->bw_stat[ddir], &min, &max, &mean, &dev)) { in add_ddir_status_json()
996 if (rs->agg[ddir]) { in add_ddir_status_json()
997 p_of_agg = mean * 100 / (double) rs->agg[ddir]; in add_ddir_status_json()
1733 int ddir; in __show_run_stats() local
1737 for (ddir = 0; ddir < DDIR_RWDIR_CNT; ddir++) { in __show_run_stats()
1738 if (rs->max_run[ddir]) in __show_run_stats()
1739 rs->agg[ddir] = (rs->iobytes[ddir] * 1000) / in __show_run_stats()
1740 rs->max_run[ddir]; in __show_run_stats()
2120 enum fio_ddir ddir, unsigned int bs, in __add_log_sample() argument
2138 io_sample_set_ddir(iolog, s, ddir); in __add_log_sample()
2197 static void __add_stat_to_log(struct io_log *iolog, enum fio_ddir ddir, in __add_stat_to_log() argument
2205 if (iolog->avg_window[ddir].samples) { in __add_stat_to_log()
2209 data.val = iolog->avg_window[ddir].max_val; in __add_stat_to_log()
2211 data.val = iolog->avg_window[ddir].mean.u.f + 0.50; in __add_stat_to_log()
2213 __add_log_sample(iolog, data, ddir, 0, elapsed, 0); in __add_stat_to_log()
2216 reset_io_stat(&iolog->avg_window[ddir]); in __add_stat_to_log()
2222 int ddir; in _add_stat_to_log() local
2224 for (ddir = 0; ddir < DDIR_RWDIR_CNT; ddir++) in _add_stat_to_log()
2225 __add_stat_to_log(iolog, ddir, elapsed, log_max); in _add_stat_to_log()
2229 union io_sample_data data, enum fio_ddir ddir, in add_log_sample() argument
2234 if (!ddir_rw(ddir)) in add_log_sample()
2243 __add_log_sample(iolog, data, ddir, bs, elapsed, offset); in add_log_sample()
2251 add_stat_sample(&iolog->avg_window[ddir], data.val); in add_log_sample()
2291 void add_agg_sample(union io_sample_data data, enum fio_ddir ddir, unsigned int bs) in add_agg_sample() argument
2295 if (!ddir_rw(ddir)) in add_agg_sample()
2298 iolog = agg_io_log[ddir]; in add_agg_sample()
2299 __add_log_sample(iolog, data, ddir, bs, mtime_since_genesis(), 0); in add_agg_sample()
2303 unsigned long usec, enum fio_ddir ddir) in add_clat_percentile_sample() argument
2308 ts->io_u_plat[ddir][idx]++; in add_clat_percentile_sample()
2311 void add_clat_sample(struct thread_data *td, enum fio_ddir ddir, in add_clat_sample() argument
2320 add_stat_sample(&ts->clat_stat[ddir], usec); in add_clat_sample()
2323 add_log_sample(td, td->clat_log, sample_val(usec), ddir, bs, in add_clat_sample()
2327 add_clat_percentile_sample(ts, usec, ddir); in add_clat_sample()
2330 struct io_hist *hw = &iolog->hist_window[ddir]; in add_clat_sample()
2349 io_u_plat = (unsigned int *) td->ts.io_u_plat[ddir]; in add_clat_sample()
2354 __add_log_sample(iolog, sample_plat(dst), ddir, bs, in add_clat_sample()
2370 void add_slat_sample(struct thread_data *td, enum fio_ddir ddir, in add_slat_sample() argument
2375 if (!ddir_rw(ddir)) in add_slat_sample()
2380 add_stat_sample(&ts->slat_stat[ddir], usec); in add_slat_sample()
2383 add_log_sample(td, td->slat_log, sample_val(usec), ddir, bs, offset); in add_slat_sample()
2388 void add_lat_sample(struct thread_data *td, enum fio_ddir ddir, in add_lat_sample() argument
2393 if (!ddir_rw(ddir)) in add_lat_sample()
2398 add_stat_sample(&ts->lat_stat[ddir], usec); in add_lat_sample()
2401 add_log_sample(td, td->lat_log, sample_val(usec), ddir, bs, in add_lat_sample()
2420 add_stat_sample(&ts->bw_stat[io_u->ddir], rate); in add_bw_sample()
2423 add_log_sample(td, td->bw_log, sample_val(rate), io_u->ddir, in add_bw_sample()
2426 td->stat_io_bytes[io_u->ddir] = td->this_io_bytes[io_u->ddir]; in add_bw_sample()
2437 enum fio_ddir ddir; in __add_samples() local
2451 for (ddir = 0; ddir < DDIR_RWDIR_CNT; ddir++) { in __add_samples()
2454 delta = this_io_bytes[ddir] - stat_io_bytes[ddir]; in __add_samples()
2466 add_stat_sample(&stat[ddir], rate); in __add_samples()
2471 if (td->o.min_bs[ddir] == td->o.max_bs[ddir]) in __add_samples()
2472 bs = td->o.min_bs[ddir]; in __add_samples()
2474 next = add_log_sample(td, log, sample_val(rate), ddir, bs, 0); in __add_samples()
2478 stat_io_bytes[ddir] = this_io_bytes[ddir]; in __add_samples()
2507 add_stat_sample(&ts->iops_stat[io_u->ddir], 1); in add_iops_sample()
2510 add_log_sample(td, td->iops_log, sample_val(1), io_u->ddir, in add_iops_sample()
2513 td->stat_io_blocks[io_u->ddir] = td->this_io_blocks[io_u->ddir]; in add_iops_sample()