From: Jens Axboe Date: Tue, 24 Feb 2015 22:50:57 +0000 (-0800) Subject: Make 'loops' honor full write+verify loops X-Git-Tag: fio-2.2.6~7 X-Git-Url: https://git.kernel.dk/?p=fio.git;a=commitdiff_plain;h=cf8a46a75f38afe07ebf823210f95543999e3116 Make 'loops' honor full write+verify loops Signed-off-by: Jens Axboe --- diff --git a/backend.c b/backend.c index 3430e661..fdb7413d 100644 --- a/backend.c +++ b/backend.c @@ -658,10 +658,10 @@ static unsigned int exceeds_number_ios(struct thread_data *td) if (!td->o.number_ios) return 0; - number_ios = ddir_rw_sum(td->this_io_blocks); + number_ios = ddir_rw_sum(td->io_blocks); number_ios += td->io_u_queued + td->io_u_in_flight; - return number_ios >= td->o.number_ios; + return number_ios >= (td->o.number_ios * td->loops); } static int io_issue_bytes_exceeded(struct thread_data *td) @@ -682,6 +682,7 @@ static int io_issue_bytes_exceeded(struct thread_data *td) else limit = td->o.size; + limit *= td->loops; return bytes >= limit || exceeds_number_ios(td); } @@ -703,6 +704,7 @@ static int io_complete_bytes_exceeded(struct thread_data *td) else limit = td->o.size; + limit *= td->loops; return bytes >= limit || exceeds_number_ios(td); } diff --git a/fio.h b/fio.h index d28f8ce5..f6880841 100644 --- a/fio.h +++ b/fio.h @@ -240,6 +240,7 @@ struct thread_data { */ uint64_t io_issues[DDIR_RWDIR_CNT]; uint64_t io_issue_bytes[DDIR_RWDIR_CNT]; + uint64_t loops; /* * Completions diff --git a/init.c b/init.c index c210ad25..7aedf2bf 100644 --- a/init.c +++ b/init.c @@ -763,6 +763,10 @@ static int fixup_options(struct thread_data *td) fio_gtod_offload = 1; } + td->loops = o->loops; + if (!td->loops) + td->loops = 1; + return ret; }