Skip to contentSkip to conversation

Recent changes (master)

PATCH Jens Axboe 1 participant 1 message Feb 25, 2015

lore
Share & tools
lore

Jens Axboe

author
#0 lore raw

The following changes since commit bb1116fe9a53154447bb4305ed9d9fd42d2a6aa1:

Fixup whitespace damage in the two previous commits (2015-02-19 08:47:34 -0800)

are available in the git repository at:

git://git.kernel.dk/fio.git master

for you to fetch changes up to cf8a46a75f38afe07ebf823210f95543999e3116:

Make 'loops' honor full write+verify loops (2015-02-24 14:50:57 -0800)

----------------------------------------------------------------
Jens Axboe (1):
Make 'loops' honor full write+verify loops

 backend.c |    6 ++++--
 fio.h     |    1 +
 init.c    |    4 ++++
 3 files changed, 9 insertions(+), 2 deletions(-)

---

Diff of recent changes:

backend.c +4 -2
index 3430e66..fdb7413 100644
@@ -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);
 }
 
fio.h +1 -0
index d28f8ce..f688084 100644
@@ -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
init.c +4 -0
index c210ad2..7aedf2b 100644
@@ -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;
 }