Recent changes (master)

Jens Axboe
2015-02-25T13:00:06Z

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:

diff --git a/backend.c b/backend.c
index 3430e66..fdb7413 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 d28f8ce..f688084 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 c210ad2..7aedf2b 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;
}