Basic support for dedupe
This adds and option, dedupe_percentage, that controls how many of
the write IO buffers are identical. For instance, if this is set:
dedupe_percentage=70
then 70% of the write IO buffers will have identical contents. The
specific contents are, as before, controlled by the various options
that set buffer contents or buffer compressibility.
Signed-off-by: Jens Axboe <axboe@fb.com>
diff --git a/init.c b/init.c
index 62c7dc2..5b0290d 100644
--- a/init.c
+++ b/init.c
@@ -836,7 +836,9 @@
void td_fill_rand_seeds(struct thread_data *td)
{
if (td->o.allrand_repeatable) {
- for (int i = 0; i < FIO_RAND_NR_OFFS; i++)
+ unsigned int i;
+
+ for (i = 0; i < FIO_RAND_NR_OFFS; i++)
td->rand_seeds[i] = FIO_RANDSEED * td->thread_number
+ i;
}
@@ -847,6 +849,9 @@
td_fill_rand_seeds_internal(td);
init_rand_seed(&td->buf_state, td->rand_seeds[FIO_RAND_BUF_OFF]);
+ frand_copy(&td->buf_state_prev, &td->buf_state);
+
+ init_rand_seed(&td->dedupe_state, td->rand_seeds[FIO_DEDUPE_OFF]);
}
/*