From: Ankit Kumar Date: Wed, 4 Aug 2021 11:23:08 +0000 (+0530) Subject: zbd: Improve random zone index generation logic X-Git-Tag: fio-3.28~33 X-Git-Url: https://git.kernel.dk/?a=commitdiff_plain;h=cb765e413e4d124355c3eec47f7ac8cd314a6951;p=fio.git zbd: Improve random zone index generation logic Existing random zone index generation logic is dependent on the file size. For smaller I/O sizes the random zone index always return a particular section of open zones. As this index is used to return one of the open zones, it was observed that after one of the max_open_zones / job_max_open_zones limit is reached all further I/O's are redirected to only a few open zones till they are full. This patch modifies the random zone index genration logic so that it is uniform across all the open zones. It reverts part of the commit 6463db6c1 ('fio: fix interaction between offset/size limited threads and "max_open_zones"') Tested-by: Shin'ichiro Kawasaki Reviewed-by: Shin'ichiro Kawasaki Signed-off-by: Ankit Kumar Signed-off-by: Jens Axboe --- diff --git a/zbd.c b/zbd.c index 04c68dea..43f12b45 100644 --- a/zbd.c +++ b/zbd.c @@ -1184,11 +1184,12 @@ out: return res; } -/* Anything goes as long as it is not a constant. */ +/* Return random zone index for one of the open zones. */ static uint32_t pick_random_zone_idx(const struct fio_file *f, const struct io_u *io_u) { - return io_u->offset * f->zbd_info->num_open_zones / f->real_file_size; + return (io_u->offset - f->file_offset) * f->zbd_info->num_open_zones / + f->io_size; } /*