From: Jens Axboe Date: Fri, 9 Mar 2012 18:06:24 +0000 (+0100) Subject: Add buffer_compress_chunk option X-Git-Tag: fio-2.0.6~16 X-Git-Url: https://git.kernel.dk/?p=fio.git;a=commitdiff_plain;h=f97a43a191f72ce071fe1140a2888dd5298c9aaa;hp=629f1d7150b142d146f8a3ee3cf0a08d1843ca2e Add buffer_compress_chunk option Instead of doing bs/2 of incompressible and zeroed data for a 50% compression setting, use the smaller chunk size specified by this option. Signed-off-by: Jens Axboe --- diff --git a/fio.h b/fio.h index 7443bc06..4afdd2d4 100644 --- a/fio.h +++ b/fio.h @@ -195,6 +195,7 @@ struct thread_options { unsigned int refill_buffers; unsigned int scramble_buffers; unsigned int compress_percentage; + unsigned int compress_chunk; unsigned int time_based; unsigned int disable_lat; unsigned int disable_clat; diff --git a/io_u.c b/io_u.c index ca33e589..a0020d27 100644 --- a/io_u.c +++ b/io_u.c @@ -1544,8 +1544,11 @@ void io_u_fill_buffer(struct thread_data *td, struct io_u *io_u, unsigned int perc = td->o.compress_percentage; if (perc) { + unsigned int seg = min_write; + + seg = min(min_write, td->o.compress_chunk); fill_random_buf_percentage(&td->buf_state, io_u->buf, - perc, min_write, max_bs); + perc, seg, max_bs); } else fill_random_buf(&td->buf_state, io_u->buf, max_bs); } else diff --git a/options.c b/options.c index 8034cd7d..06806596 100644 --- a/options.c +++ b/options.c @@ -2021,6 +2021,12 @@ static struct fio_option options[FIO_MAX_OPTS] = { .minval = 1, .help = "How compressible the buffer is (approximately)", }, + { + .name = "buffer_compress_chunk", + .type = FIO_OPT_INT, + .off1 = td_var_offset(compress_chunk), + .help = "Size of compressible region in buffer", + }, { .name = "clat_percentiles", .type = FIO_OPT_BOOL,