summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorVincent Fu <vincent.fu@wdc.com>2019-10-15 10:29:57 -0400
committerJens Axboe <axboe@kernel.dk>2019-10-15 09:14:51 -0600
commit3ed8c570e05f15b5eb0061d2cfc07d6c19cc57e8 (patch)
treeddd72fd8fc5f849fea61d898a20c653a13f819a8
parent35f561eb40bc3fffd6bfa05f39769087b7fceae4 (diff)
downloadfio-3ed8c570e05f15b5eb0061d2cfc07d6c19cc57e8.tar.gz
fio-3ed8c570e05f15b5eb0061d2cfc07d6c19cc57e8.tar.bz2
filesetup: use zonerange for map and LFSR with zonemode=strided
When a random map is enabled, cover only the current zone when run with zonemode=strided. This ensures that when we reach the end of the zone we wrap around back into the current zone instead of accessing blocks outside of the zone. In addition, when an LFSR is used, constrain the blocks generated to the current zone. Previously, the LFSR random_generator would ignore the strided zonemode setting. Fixes: https://github.com/axboe/fio/issues/809 Signed-off-by: Jens Axboe <axboe@kernel.dk>
-rw-r--r--filesetup.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/filesetup.c b/filesetup.c
index a439b6d6..1d3094c1 100644
--- a/filesetup.c
+++ b/filesetup.c
@@ -1338,6 +1338,9 @@ bool init_random_map(struct thread_data *td)
for_each_file(td, f, i) {
uint64_t fsize = min(f->real_file_size, f->io_size);
+ if (td->o.zone_mode == ZONE_MODE_STRIDED)
+ fsize = td->o.zone_range;
+
blocks = fsize / (unsigned long long) td->o.rw_min_bs;
if (check_rand_gen_limits(td, f, blocks))