- if (td->o.random_generator == FIO_RAND_GEN_TAUSWORTHE) {
- uint64_t lastb;
+ if (td->o.random_generator == FIO_RAND_GEN_TAUSWORTHE ||
+ td->o.random_generator == FIO_RAND_GEN_TAUSWORTHE64) {
+ uint64_t frand_max, lastb;
r = __rand(&td->random_state);
dprint(FD_RANDOM, "off rand %llu\n", (unsigned long long) r);
r = __rand(&td->random_state);
dprint(FD_RANDOM, "off rand %llu\n", (unsigned long long) r);
do {
r = __rand(&td->bsrange_state);
if (!td->o.bssplit_nr[ddir]) {
buflen = 1 + (unsigned int) ((double) maxbs *
do {
r = __rand(&td->bsrange_state);
if (!td->o.bssplit_nr[ddir]) {
buflen = 1 + (unsigned int) ((double) maxbs *
enum fio_file_flags goodf,
enum fio_file_flags badf)
{
enum fio_file_flags goodf,
enum fio_file_flags badf)
{
if (!td->o.disable_bw)
add_bw_sample(td, idx, bytes, &icd->time);
if (!td->o.disable_bw)
add_bw_sample(td, idx, bytes, &icd->time);
add_slat_sample(td, io_u->ddir, slat_time, io_u->xfer_buflen,
io_u->offset);
}
add_slat_sample(td, io_u->ddir, slat_time, io_u->xfer_buflen,
io_u->offset);
}
-static void save_buf_state(struct thread_data *td, struct frand_state *rs,
- struct frand_state *save)
+static void save_buf_state(struct thread_data *td, struct frand_state *rs)
- if (rs == &td->buf_state)
+ if (td->o.dedupe_percentage == 100)
+ frand_copy(rs, &td->buf_state_prev);
+ else if (rs == &td->buf_state)
}
void fill_io_buffer(struct thread_data *td, void *buf, unsigned int min_write,
unsigned int max_bs)
{
struct thread_options *o = &td->o;
}
void fill_io_buffer(struct thread_data *td, void *buf, unsigned int min_write,
unsigned int max_bs)
{
struct thread_options *o = &td->o;
} while (left);
} else if (o->buffer_pattern_bytes)
fill_buffer_pattern(td, buf, max_bs);
else if (o->zero_buffers)
memset(buf, 0, max_bs);
else
} while (left);
} else if (o->buffer_pattern_bytes)
fill_buffer_pattern(td, buf, max_bs);
else if (o->zero_buffers)
memset(buf, 0, max_bs);
else
- fill_random_buf(get_buf_state(td, NULL), buf, max_bs);
+ fill_random_buf(get_buf_state(td), buf, max_bs);