diff options
author | Justin Eno <jeno@micron.com> | 2015-01-29 12:27:58 -0800 |
---|---|---|
committer | Mohamad Ayyash <mkayyash@google.com> | 2015-03-06 17:58:17 -0800 |
commit | 1b35740d5492c4a0a163ec49996265a8cd5e0100 (patch) | |
tree | 7cfe1bcc96d244abbdeb0fb21e69e5acaebcd350 | |
parent | aedc0b68ab3b59fe54361e3f640a7b31d97ea5fb (diff) | |
download | fio-1b35740d5492c4a0a163ec49996265a8cd5e0100.tar.gz |
Allow random overwrite workloads to write io_limit
Limiting the write phase of (random) overwrite workloads to 'size'
before the verify phase doesn't make sense, so allow them to write
up to io_limit. This better matches verify_only behavior, and
allows the [verify-job] below to succeed:
[global]
thread=1
direct=1
ioengine=sync
verify=meta
bs=1k
offset=0
size=5M
io_limit=6M
norandommap=1
verify_fatal=1
randseed=42
[write-job]
filename=datafile.tmp
rw=randwrite
do_verify=0
[verify-job]
stonewall
create_serialize=0
filename=datafile.tmp
rw=randwrite
do_verify=1
verify_only=1
Signed-off-by: Justin Eno <jeno@micron.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
-rw-r--r-- | backend.c | 8 |
1 files changed, 7 insertions, 1 deletions
@@ -726,12 +726,18 @@ static uint64_t do_io(struct thread_data *td) lat_target_init(td); + total_bytes = td->o.size; + /* + * Allow random overwrite workloads to write up to io_limit + * before starting verification phase as 'size' doesn't apply. + */ + if (td_write(td) && td_random(td) && td->o.norandommap) + total_bytes = max(total_bytes, (uint64_t) td->o.io_limit); /* * If verify_backlog is enabled, we'll run the verify in this * handler as well. For that case, we may need up to twice the * amount of bytes. */ - total_bytes = td->o.size; if (td->o.verify != VERIFY_NONE && (td_write(td) && td->o.verify_backlog)) total_bytes += td->o.size; |