From: Justin Eno Date: Tue, 27 Jan 2015 22:23:20 +0000 (-0800) Subject: Better accommodate random writes larger than blockalign X-Git-Tag: fio-2.2.6~28 X-Git-Url: https://git.kernel.dk/?p=fio.git;a=commitdiff_plain;h=0412d12e12957a90d63b802a4069ca91c3feed58 Better accommodate random writes larger than blockalign fill_io_u() fails prematurely if the randomly-chosen offset satisfies blockalign but not min_bs, i.e., the offset lies too near the end of the target region. This change honors both parameters. Signed-off-by: Justin Eno Signed-off-by: Jens Axboe --- diff --git a/io_u.c b/io_u.c index 5971d78b..77a3abf7 100644 --- a/io_u.c +++ b/io_u.c @@ -68,6 +68,9 @@ static uint64_t last_block(struct thread_data *td, struct fio_file *f, if (td->o.zone_range) max_size = td->o.zone_range; + if (td->o.min_bs[ddir] > td->o.ba[ddir]) + max_size -= td->o.min_bs[ddir] - td->o.ba[ddir]; + max_blocks = max_size / (uint64_t) td->o.ba[ddir]; if (!max_blocks) return 0;