Recent changes (master)

Jens Axboe
2016-05-10T12:00:03Z

The following changes since commit d5bdff69e877a3f65928278df9d252d8881ff864:

Makefile: fix path to tools/fiologparser.py (2016-05-06 17:10:33 -0600)

are available in the git repository at:

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

for you to fetch changes up to df96a39edc86394bca0643e9aa2a8f4dfc76c7c9:

Change default IO engine from sync to psync (2016-05-09 13:35:09 -0600)

----------------------------------------------------------------
Jens Axboe (3):
filesetup: ensure that we align file starting offset
io_u: if we're doing backwards IO, wrap to end (not start)
Change default IO engine from sync to psync

filesetup.c | 8 ++++++--
io_u.c | 11 ++++++++---
os/os.h | 2 +-
3 files changed, 15 insertions(+), 6 deletions(-)

---

Diff of recent changes:

diff --git a/filesetup.c b/filesetup.c
index 3fc1464..9c37ae5 100644
--- a/filesetup.c
+++ b/filesetup.c
@@ -761,12 +761,16 @@ static unsigned long long get_fs_free_counts(struct thread_data *td)
uint64_t get_start_offset(struct thread_data *td, struct fio_file *f)
{
struct thread_options *o = &td->o;
+ uint64_t offset;

if (o->file_append && f->filetype == FIO_TYPE_FILE)
return f->real_file_size;

- return td->o.start_offset +
- td->subjob_number * td->o.offset_increment;
+ offset = td->o.start_offset + td->subjob_number * td->o.offset_increment;
+ if (offset % td_max_bs(td))
+ offset -= (offset % td_max_bs(td));
+
+ return offset;
}

/*
diff --git a/io_u.c b/io_u.c
index eb15dc2..f9870e7 100644
--- a/io_u.c
+++ b/io_u.c
@@ -371,10 +371,15 @@ static int get_next_seq_offset(struct thread_data *td, struct fio_file *f,
/*
* If we reach beyond the end of the file
* with holed IO, wrap around to the
- * beginning again.
+ * beginning again. If we're doing backwards IO,
+ * wrap to the end.
*/
- if (pos >= f->real_file_size)
- pos = f->file_offset;
+ if (pos >= f->real_file_size) {
+ if (o->ddir_seq_add > 0)
+ pos = f->file_offset;
+ else
+ pos = f->real_file_size + o->ddir_seq_add;
+ }
}

*offset = pos;
diff --git a/os/os.h b/os/os.h
index 02ab40d..9877383 100644
--- a/os/os.h
+++ b/os/os.h
@@ -151,7 +151,7 @@ extern int fio_cpus_split(os_cpu_mask_t *mask, unsigned int cpu);
#endif

#ifndef FIO_PREFERRED_ENGINE
-#define FIO_PREFERRED_ENGINE "sync"
+#define FIO_PREFERRED_ENGINE "psync"
#endif

#ifndef FIO_OS_PATH_SEPARATOR