Recent changes (master)

Jens Axboe
2015-04-29T11:59:55Z

The following changes since commit 9451b93e81fb950a80da09e295e56b1ad4538509:

dedupe: improve 100% dedupe case (2015-04-27 09:37:11 -0600)

are available in the git repository at:

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

for you to fetch changes up to 76a00ec6684317902e536365b89531431e7f8867:

blktrace: only set O_DIRECT if the min bs is a multiple of 4k (2015-04-28 15:30:02 -0600)

----------------------------------------------------------------
Jens Axboe (2):
Add recommendation to set direct=0 if first O_DIRECT fails
blktrace: only set O_DIRECT if the min bs is a multiple of 4k

blktrace.c | 5 +++--
ioengines.c | 3 ++-
2 files changed, 5 insertions(+), 3 deletions(-)

---

Diff of recent changes:

diff --git a/blktrace.c b/blktrace.c
index 8ffa9b0..bb0bcbe 100644
--- a/blktrace.c
+++ b/blktrace.c
@@ -503,9 +503,10 @@ int load_blktrace(struct thread_data *td, const char *filename, int need_swap)

/*
* We need to do direct/raw ios to the device, to avoid getting
- * read-ahead in our way.
+ * read-ahead in our way. But only do so if the minimum block size
+ * is a multiple of 4k, otherwise we don't know if it's safe to do so.
*/
- if (!fio_option_is_set(&td->o, odirect))
+ if (!fio_option_is_set(&td->o, odirect) && !(td_min_bs(td) & 4095))
td->o.odirect = 1;

/*
diff --git a/ioengines.c b/ioengines.c
index b724e0e..958731d 100644
--- a/ioengines.c
+++ b/ioengines.c
@@ -327,7 +327,8 @@ int td_io_queue(struct thread_data *td, struct io_u *io_u)
td->o.odirect) {

log_info("fio: first direct IO errored. File system may not "
- "support direct IO, or iomem_align= is bad.\n");
+ "support direct IO, or iomem_align= is bad. Try "
+ "setting direct=0.\n");
}

if (!td->io_ops->commit || io_u->ddir == DDIR_TRIM) {