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 <axboe@kernel.dk>
diff --git a/fio.h b/fio.h
index 7443bc0..4afdd2d 100644
--- a/fio.h
+++ b/fio.h
@@ -195,6 +195,7 @@
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 ca33e58..a0020d2 100644
--- a/io_u.c
+++ b/io_u.c
@@ -1544,8 +1544,11 @@
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 8034cd7..0680659 100644
--- a/options.c
+++ b/options.c
@@ -2022,6 +2022,12 @@
.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,
.off1 = td_var_offset(clat_percentiles),