Another mode will be added, so lets rename this one internally
to make the distinction clear.
Signed-off-by: Jens Axboe <jaxboe@fusionio.com>
char *ioengine;
enum td_ddir td_ddir;
unsigned int kb_base;
char *ioengine;
enum td_ddir td_ddir;
unsigned int kb_base;
+ unsigned int ddir_seq_nr;
unsigned int iodepth;
unsigned int iodepth_low;
unsigned int iodepth_batch;
unsigned int iodepth;
unsigned int iodepth_low;
unsigned int iodepth_batch;
os_random_state_t rwmix_state;
unsigned long rwmix_issues;
enum fio_ddir rwmix_ddir;
os_random_state_t rwmix_state;
unsigned long rwmix_issues;
enum fio_ddir rwmix_ddir;
+ unsigned int ddir_seq_nr;
/*
* IO history logs for verification. We use a tree for sorting,
/*
* IO history logs for verification. We use a tree for sorting,
td->ts.slat_stat[0].min_val = td->ts.slat_stat[1].min_val = ULONG_MAX;
td->ts.lat_stat[0].min_val = td->ts.lat_stat[1].min_val = ULONG_MAX;
td->ts.bw_stat[0].min_val = td->ts.bw_stat[1].min_val = ULONG_MAX;
td->ts.slat_stat[0].min_val = td->ts.slat_stat[1].min_val = ULONG_MAX;
td->ts.lat_stat[0].min_val = td->ts.lat_stat[1].min_val = ULONG_MAX;
td->ts.bw_stat[0].min_val = td->ts.bw_stat[1].min_val = ULONG_MAX;
- td->ddir_nr = td->o.ddir_nr;
+ td->ddir_seq_nr = td->o.ddir_seq_nr;
if ((td->o.stonewall || td->o.new_group) && prev_group_jobs) {
prev_group_jobs = 0;
if ((td->o.stonewall || td->o.new_group) && prev_group_jobs) {
prev_group_jobs = 0;
* If we have a mixed random workload, we may
* encounter blocks we already did IO to.
*/
* If we have a mixed random workload, we may
* encounter blocks we already did IO to.
*/
- if ((td->o.ddir_nr == 1) && !random_map_free(f, block))
+ if ((td->o.ddir_seq_nr == 1) && !random_map_free(f, block))
break;
idx = RAND_MAP_IDX(f, block);
break;
idx = RAND_MAP_IDX(f, block);
unsigned long long b;
enum fio_ddir ddir = io_u->ddir;
unsigned long long b;
enum fio_ddir ddir = io_u->ddir;
- if (td_random(td) && (td->o.ddir_nr && !--td->ddir_nr)) {
- td->ddir_nr = td->o.ddir_nr;
+ if (td_random(td) && (td->o.ddir_seq_nr && !--td->ddir_seq_nr)) {
+ td->ddir_seq_nr = td->o.ddir_seq_nr;
if (get_next_rand_offset(td, f, ddir, &b)) {
dprint(FD_IO, "%s: getting rand offset failed\n",
if (get_next_rand_offset(td, f, ddir, &b)) {
dprint(FD_IO, "%s: getting rand offset failed\n",
struct thread_data *td = data;
char *nr = get_opt_postfix(str);
struct thread_data *td = data;
char *nr = get_opt_postfix(str);
- td->o.ddir_nr = atoi(nr);
+ td->o.ddir_seq_nr = atoi(nr);