summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJens Axboe <axboe@kernel.dk>2017-09-05 15:37:36 -0600
committerJens Axboe <axboe@kernel.dk>2017-09-05 15:37:36 -0600
commit83a9e706745e5a5affd5475b884e42d0100f783f (patch)
tree8c46a4a7b0696dcefa91b8ad4631e2e450d1b857
parenta2b110536d42d112a29d6bbd27f068c20e77c475 (diff)
parentf20a86a792dd13d66b0f7aa1f8ec05f9bf5f149d (diff)
downloadfio-83a9e706745e5a5affd5475b884e42d0100f783f.tar.gz
Merge branch 'windows_io_hint' of https://github.com/sitsofe/fio
-rw-r--r--engines/windowsaio.c23
1 files changed, 18 insertions, 5 deletions
diff --git a/engines/windowsaio.c b/engines/windowsaio.c
index c4c5abd4..314eaadf 100644
--- a/engines/windowsaio.c
+++ b/engines/windowsaio.c
@@ -169,13 +169,26 @@ static int fio_windowsaio_open_file(struct thread_data *td, struct fio_file *f)
/*
* Inform Windows whether we're going to be doing sequential or
- * random io so it can tune the Cache Manager
+ * random IO so it can tune the Cache Manager
*/
- if (td->o.td_ddir == TD_DDIR_READ ||
- td->o.td_ddir == TD_DDIR_WRITE)
- flags |= FILE_FLAG_SEQUENTIAL_SCAN;
- else
+ switch (td->o.fadvise_hint) {
+ case F_ADV_TYPE:
+ if (td_random(td))
+ flags |= FILE_FLAG_RANDOM_ACCESS;
+ else
+ flags |= FILE_FLAG_SEQUENTIAL_SCAN;
+ break;
+ case F_ADV_RANDOM:
flags |= FILE_FLAG_RANDOM_ACCESS;
+ break;
+ case F_ADV_SEQUENTIAL:
+ flags |= FILE_FLAG_SEQUENTIAL_SCAN;
+ break;
+ case F_ADV_NONE:
+ break;
+ default:
+ log_err("fio: unknown fadvise type %d\n", td->o.fadvise_hint);
+ }
if (!td_write(td) || read_only)
access = GENERIC_READ;