The following changes since commit 2dddfd35396e2f7a1bb06cc7c92aa1e283be084e: Merge branch 'patch-ioengines' of https://github.com/kcoms555/fio (2024-03-04 07:31:47 -0700) are available in the Git repository at: git://git.kernel.dk/fio.git master for you to fetch changes up to 9b699fb150bbed56939d317ffc004b3bf19f098f: Doc: Make note of using bsrange with ':' (2024-03-05 10:54:36 -0500) ---------------------------------------------------------------- Avri Altman (5): fio: Some minor code cleanups t/jobs: Further clarify regression test 7 t/jobs: Rename test job 15 t/jobs: Fix a typo in jobs 23 & 24 Doc: Make note of using bsrange with ':' HOWTO.rst | 4 ++-- backend.c | 4 ++-- eta.c | 8 +++++--- fio.1 | 2 +- io_u.c | 3 ++- parse.h | 2 +- stat.h | 1 - t/jobs/t0007-37cf9e3c.fio | 5 ++++- t/jobs/{t0015-e78980ff.fio => t0015-4e7e7898.fio} | 0 t/jobs/t0023.fio | 4 ++-- t/jobs/t0024.fio | 2 +- t/run-fio-tests.py | 2 +- 12 files changed, 21 insertions(+), 16 deletions(-) rename t/jobs/{t0015-e78980ff.fio => t0015-4e7e7898.fio} (100%) --- Diff of recent changes: diff --git a/HOWTO.rst b/HOWTO.rst index 169cdc2a..2386d806 100644 --- a/HOWTO.rst +++ b/HOWTO.rst @@ -1631,7 +1631,7 @@ Block size Comma-separated ranges may be specified for reads, writes, and trims as described in :option:`blocksize`. - Example: ``bsrange=1k-4k,2k-8k``. + Example: ``bsrange=1k-4k,2k-8k`` also the ':' delimiter ``bsrange=1k:4k,2k:8k``. .. option:: bssplit=str[,str][,str] @@ -2786,7 +2786,7 @@ with the caveat that when used on the command line, they must come after the .. option:: sg_write_mode=str : [sg] - Specify the type of write commands to issue. This option can take three values: + Specify the type of write commands to issue. This option can take ten values: **write** This is the default where write opcodes are issued as usual. diff --git a/backend.c b/backend.c index 2f2221bf..fb7dc68a 100644 --- a/backend.c +++ b/backend.c @@ -2094,14 +2094,14 @@ static void reap_threads(unsigned int *nr_running, uint64_t *t_rate, uint64_t *m_rate) { unsigned int cputhreads, realthreads, pending; - int status, ret; + int ret; /* * reap exited threads (TD_EXITED -> TD_REAPED) */ realthreads = pending = cputhreads = 0; for_each_td(td) { - int flags = 0; + int flags = 0, status; if (!strcmp(td->o.ioengine, "cpuio")) cputhreads++; diff --git a/eta.c b/eta.c index cc342461..7d07708f 100644 --- a/eta.c +++ b/eta.c @@ -215,8 +215,9 @@ static unsigned long thread_eta(struct thread_data *td) perc = td->o.rwmix[DDIR_WRITE]; bytes_total += (bytes_total * perc) / 100; - } else + } else { bytes_total <<= 1; + } } if (td->runstate == TD_RUNNING || td->runstate == TD_VERIFYING) { @@ -228,8 +229,9 @@ static unsigned long thread_eta(struct thread_data *td) perc = (double) bytes_done / (double) bytes_total; if (perc > 1.0) perc = 1.0; - } else + } else { perc = 0.0; + } if (td->o.time_based) { if (timeout) { @@ -395,7 +397,7 @@ static bool skip_eta() * Print status of the jobs we know about. This includes rate estimates, * ETA, thread state, etc. */ -bool calc_thread_status(struct jobs_eta *je, int force) +static bool calc_thread_status(struct jobs_eta *je, int force) { int unified_rw_rep; bool any_td_in_ramp; diff --git a/fio.1 b/fio.1 index e6b291a7..d955385d 100644 --- a/fio.1 +++ b/fio.1 @@ -1434,7 +1434,7 @@ described in \fBblocksize\fR. Example: .RS .RS .P -bsrange=1k\-4k,2k\-8k +bsrange=1k\-4k,2k\-8k or bsrange=1k:4k,2k:8k .RE .RE .TP diff --git a/io_u.c b/io_u.c index 2b8e17f8..09e5f15a 100644 --- a/io_u.c +++ b/io_u.c @@ -1895,8 +1895,9 @@ struct io_u *get_io_u(struct thread_data *td) io_u->buflen); } else if ((td->flags & TD_F_SCRAMBLE_BUFFERS) && !(td->flags & TD_F_COMPRESS) && - !(td->flags & TD_F_DO_VERIFY)) + !(td->flags & TD_F_DO_VERIFY)) { do_scramble = 1; + } } else if (io_u->ddir == DDIR_READ) { /* * Reset the buf_filled parameters so next time if the diff --git a/parse.h b/parse.h index d68484ea..806a76ee 100644 --- a/parse.h +++ b/parse.h @@ -32,7 +32,7 @@ enum fio_opt_type { */ struct value_pair { const char *ival; /* string option */ - unsigned long long oval;/* output value */ + unsigned long long oval; /* output value */ const char *help; /* help text for sub option */ int orval; /* OR value */ void *cb; /* sub-option callback */ diff --git a/stat.h b/stat.h index bd986d4e..0d57cceb 100644 --- a/stat.h +++ b/stat.h @@ -345,7 +345,6 @@ extern void stat_exit(void); extern struct json_object * show_thread_status(struct thread_stat *ts, struct group_run_stats *rs, struct flist_head *, struct buf_output *); extern void show_group_stats(struct group_run_stats *rs, struct buf_output *); -extern bool calc_thread_status(struct jobs_eta *je, int force); extern void display_thread_status(struct jobs_eta *je); extern void __show_run_stats(void); extern int __show_running_run_stats(void); diff --git a/t/jobs/t0007-37cf9e3c.fio b/t/jobs/t0007-37cf9e3c.fio index d3c98751..b2592694 100644 --- a/t/jobs/t0007-37cf9e3c.fio +++ b/t/jobs/t0007-37cf9e3c.fio @@ -1,4 +1,7 @@ -# Expected result: fio reads 87040KB of data +# Expected result: fio reads 87040KB of data: +# first read is at offset 0, then 2nd read is at offset 1.5m, then the 3rd +# read is at offset 3m, and after the last read at offset 127m - we have only +# read 87,040K data. # Buggy result: fio reads the full 128MB of data [foo] size=128mb diff --git a/t/jobs/t0015-e78980ff.fio b/t/jobs/t0015-4e7e7898.fio similarity index 100% rename from t/jobs/t0015-e78980ff.fio rename to t/jobs/t0015-4e7e7898.fio diff --git a/t/jobs/t0023.fio b/t/jobs/t0023.fio index 4f0bef89..8e14a110 100644 --- a/t/jobs/t0023.fio +++ b/t/jobs/t0023.fio @@ -33,7 +33,7 @@ bsrange=512-4k # block sizes match # Buggy result: something else [bssplit] -bsrange=512/25:1k:25:2k:25:4k/25 +bssplit=512/25:1k/:2k/:4k/ # Expected result: trim issued to random offset followed by write to same offset # block sizes match @@ -59,5 +59,5 @@ norandommap=1 # block sizes match # Buggy result: something else [bssplit_no_rm] -bsrange=512/25:1k:25:2k:25:4k/25 +bssplit=512/25:1k/:2k/:4k/ norandommap=1 diff --git a/t/jobs/t0024.fio b/t/jobs/t0024.fio index 393a2b70..2b3dc94c 100644 --- a/t/jobs/t0024.fio +++ b/t/jobs/t0024.fio @@ -33,4 +33,4 @@ bsrange=512-4k # block sizes match # Buggy result: something else [bssplit] -bsrange=512/25:1k:25:2k:25:4k/25 +bssplit=512/25:1k/:2k/:4k/ diff --git a/t/run-fio-tests.py b/t/run-fio-tests.py index d4742e96..08134e50 100755 --- a/t/run-fio-tests.py +++ b/t/run-fio-tests.py @@ -722,7 +722,7 @@ TEST_LIST = [ { 'test_id': 15, 'test_class': FioJobFileTest_t0015, - 'job': 't0015-e78980ff.fio', + 'job': 't0015-4e7e7898.fio', 'success': SUCCESS_DEFAULT, 'pre_job': None, 'pre_success': None,