Skip to contentSkip to conversation

Recent changes (master)

PATCH Jens Axboe 1 participant 1 message Apr 29, 2015

lore
Share & tools
lore

Jens Axboe

author
#0 lore raw

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:

blktrace.c +3 -2
index 8ffa9b0..bb0bcbe 100644
@@ -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;
 
 	/*
ioengines.c +2 -1
index b724e0e..958731d 100644
@@ -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) {