Recent changes (master)
The following changes since commit 0ce7e3e584be6f4f834fb2fec8e52deb23e1dd12:
Merge branch 'issue-1065' of https://github.com/XeS0r/fio into master (2020-08-14 16:02:37 -0700)
are available in the Git repository at:
git://git.kernel.dk/fio.git master
for you to fetch changes up to dde39f8c356158207eb2fc8ff6c9d2daad910a84:
fio: add for_each_rw_ddir() macro (2020-08-16 21:01:22 -0700)
----------------------------------------------------------------
Alexey Dobriyan (1):
fio: add for_each_rw_ddir() macro
Jens Axboe (1):
Fio 3.22
FIO-VERSION-GEN | 2 +- backend.c | 16 +++++++-------- eta.c | 12 +++++------ init.c | 62 ++++++++++++++++++++++++--------------------------------- io_ddir.h | 2 ++ stat.c | 16 +++++++-------- 6 files changed, 48 insertions(+), 62 deletions(-)
---
Diff of recent changes:
FIO-VERSION-GEN +1 -1
@@ -1,7 +1,7 @@ #!/bin/sh GVF=FIO-VERSION-FILE -DEF_VER=fio-3.21 +DEF_VER=fio-3.22 LF=' '
backend.c +7 -9
@@ -223,12 +223,10 @@ static bool check_min_rate(struct thread_data *td, struct timespec *now) {bool ret = false; -if (td->bytes_done[DDIR_READ ]) - ret |=__check_min_rate (td, now,DDIR_READ ); -if (td->bytes_done[DDIR_WRITE ]) - ret |=__check_min_rate (td, now,DDIR_WRITE ); -if (td->bytes_done[DDIR_TRIM ]) - ret |=__check_min_rate (td, now,DDIR_TRIM ); +for_each_rw_ddir (ddir) { +if (td->bytes_done[ddir]) + ret |=__check_min_rate (td, now, ddir); + }return ret; }
@@ -1876,9 +1874,9 @@ static void *thread_main(void *data)update_rusage_stat (td); td->ts.total_run_time =mtime_since_now (&td->epoch); - td->ts.io_bytes[DDIR_READ ] = td->io_bytes[DDIR_READ ]; - td->ts.io_bytes[DDIR_WRITE ] = td->io_bytes[DDIR_WRITE ]; - td->ts.io_bytes[DDIR_TRIM ] = td->io_bytes[DDIR_TRIM ]; +for_each_rw_ddir (ddir) { + td->ts.io_bytes[ddir] = td->io_bytes[ddir]; + }if (td->o.verify_state_save && !(td->flags &TD_F_VSTATE_SAVED ) && (td->o.verify !=VERIFY_NONE &&td_write (td)))
eta.c +5 -7
@@ -383,8 +383,8 @@ bool calc_thread_status(struct jobs_eta *je, int force)struct thread_data *td;int i, unified_rw_rep;uint64_t rate_time, disp_time, bw_avg_time, *eta_secs; -unsigned long long io_bytes[DDIR_RWDIR_CNT ]; -unsigned long long io_iops[DDIR_RWDIR_CNT ]; +unsigned long long io_bytes[DDIR_RWDIR_CNT ] = {}; +unsigned long long io_iops[DDIR_RWDIR_CNT ] = {};struct timespec now;static unsigned long long rate_io_bytes[DDIR_RWDIR_CNT ];
@@ -413,8 +413,6 @@ bool calc_thread_status(struct jobs_eta *je, int force) je->elapsed_sec = (mtime_since_genesis () +999 ) /1000 ; - io_bytes[DDIR_READ ] = io_bytes[DDIR_WRITE ] = io_bytes[DDIR_TRIM ] =0 ; - io_iops[DDIR_READ ] = io_iops[DDIR_WRITE ] = io_iops[DDIR_TRIM ] =0 ; bw_avg_time =ULONG_MAX ; unified_rw_rep =0 ;for_each_td (td, i) {
@@ -509,9 +507,9 @@ bool calc_thread_status(struct jobs_eta *je, int force)calc_rate (unified_rw_rep, rate_time, io_bytes, rate_io_bytes, je->rate);memcpy (&rate_prev_time, &now,sizeof (now)); -add_agg_sample (sample_val (je->rate[DDIR_READ ]),DDIR_READ ,0 ,0 ); -add_agg_sample (sample_val (je->rate[DDIR_WRITE ]),DDIR_WRITE ,0 ,0 ); -add_agg_sample (sample_val (je->rate[DDIR_TRIM ]),DDIR_TRIM ,0 ,0 ); +for_each_rw_ddir (ddir) { +add_agg_sample (sample_val (je->rate[ddir]), ddir,0 ,0 ); + } } disp_time =mtime_since (&disp_prev_time, &now);
init.c +26 -36
84 lines not on this page · raw message
io_ddir.h +2 -0
@@ -16,6 +16,8 @@ enum fio_ddir { DDIR_RWDIR_SYNC_CNT = 4, }; +#define for_each_rw_ddir (ddir) for (enum fio_ddir ddir = 0; ddir < DDIR_RWDIR_CNT; ddir++) +static inline const char *io_ddir_name (enum fio_ddir ddir) {static const char *name[] = {"read" ,"write" ,"trim" ,"sync" ,
stat.c +7 -9
@@ -1078,12 +1078,10 @@ static void show_thread_status_normal(struct thread_stat *ts,if (strlen (ts->description))log_buf (out," Description : [%s]\n" , ts->description); -if (ts->io_bytes[DDIR_READ ]) -show_ddir_status (rs, ts,DDIR_READ , out); -if (ts->io_bytes[DDIR_WRITE ]) -show_ddir_status (rs, ts,DDIR_WRITE , out); -if (ts->io_bytes[DDIR_TRIM ]) -show_ddir_status (rs, ts,DDIR_TRIM , out); +for_each_rw_ddir (ddir) { +if (ts->io_bytes[ddir]) +show_ddir_status (rs, ts, ddir, out); + }show_latencies (ts, out);
@@ -2315,9 +2313,9 @@ void __show_running_run_stats(void)for_each_td (td, i) { td->update_rusage =1 ; - td->ts.io_bytes[DDIR_READ ] = td->io_bytes[DDIR_READ ]; - td->ts.io_bytes[DDIR_WRITE ] = td->io_bytes[DDIR_WRITE ]; - td->ts.io_bytes[DDIR_TRIM ] = td->io_bytes[DDIR_TRIM ]; +for_each_rw_ddir (ddir) { + td->ts.io_bytes[ddir] = td->io_bytes[ddir]; + } td->ts.total_run_time =mtime_since (&td->epoch, &ts); rt[i] =mtime_since (&td->start, &ts);