While using the mmap engine with direct=1 (an artificial combination), only call msync() and madvise(DONTNEED) for writes; don't worry about reads. This better simulates an application that periodically wants to flush updated data to disk, but wants to keep read data in memory. Signed-off-by: Robert Elliott <elliott@xxxxxxx> --- engines/mmap.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/engines/mmap.c b/engines/mmap.c index 308b4665..cacf1768 100644 --- a/engines/mmap.c +++ b/engines/mmap.c @@ -205,7 +205,7 @@ static enum fio_q_status fio_mmapio_queue(struct thread_data *td, /* * not really direct, but should drop the pages from the cache */ - if (td->o.odirect && ddir_rw(io_u->ddir)) { + if (td->o.odirect && (io_u->ddir == DDIR_WRITE || io_u->ddir == DDIR_TRIM)) { if (msync(io_u->mmap_data, io_u->xfer_buflen, MS_SYNC) < 0) { io_u->error = errno; td_verror(td, io_u->error, "msync"); -- 2.14.4 -- To unsubscribe from this list: send the line "unsubscribe fio" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html