X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=options.c;h=7a9d5d392ad60afbc9f7431362746d3ed79bffb9;hb=8e239cae8aae89f07a885ffcc985600ce9c65d5d;hp=923076752b6f6c03b979e52682c5de3c4dbf518f;hpb=a5737c9363912baaa21af978358fb9f42e756beb;p=fio.git diff --git a/options.c b/options.c index 92307675..7a9d5d39 100644 --- a/options.c +++ b/options.c @@ -3,7 +3,6 @@ #include #include #include -#include #include #include #include @@ -203,9 +202,9 @@ static int str_rw_cb(void *data, const char *str) struct thread_data *td = data; char *nr = get_opt_postfix(str); - td->o.ddir_nr = 1; + td->o.ddir_seq_nr = 1; if (nr) { - td->o.ddir_nr = atoi(nr); + td->o.ddir_seq_nr = atoi(nr); free(nr); } @@ -251,13 +250,13 @@ static int fio_clock_source_cb(void *data, const char *str) return 0; } -static int str_lockmem_cb(void fio_unused *data, unsigned long *val) +static int str_lockmem_cb(void fio_unused *data, unsigned long long *val) { mlock_size = *val; return 0; } -static int str_rwmix_read_cb(void *data, unsigned int *val) +static int str_rwmix_read_cb(void *data, unsigned long long *val) { struct thread_data *td = data; @@ -266,7 +265,7 @@ static int str_rwmix_read_cb(void *data, unsigned int *val) return 0; } -static int str_rwmix_write_cb(void *data, unsigned int *val) +static int str_rwmix_write_cb(void *data, unsigned long long *val) { struct thread_data *td = data; @@ -276,7 +275,7 @@ static int str_rwmix_write_cb(void *data, unsigned int *val) } #ifdef FIO_HAVE_IOPRIO -static int str_prioclass_cb(void *data, unsigned int *val) +static int str_prioclass_cb(void *data, unsigned long long *val) { struct thread_data *td = data; unsigned short mask; @@ -292,7 +291,7 @@ static int str_prioclass_cb(void *data, unsigned int *val) return 0; } -static int str_prio_cb(void *data, unsigned int *val) +static int str_prio_cb(void *data, unsigned long long *val) { struct thread_data *td = data; @@ -316,7 +315,7 @@ static int str_exitall_cb(void) } #ifdef FIO_HAVE_CPU_AFFINITY -static int str_cpumask_cb(void *data, unsigned int *val) +static int str_cpumask_cb(void *data, unsigned long long *val) { struct thread_data *td = data; unsigned int i; @@ -614,7 +613,7 @@ static int str_opendir_cb(void *data, const char fio_unused *str) return add_dir_files(td, td->o.opendir); } -static int str_verify_offset_cb(void *data, unsigned int *off) +static int str_verify_offset_cb(void *data, unsigned long long *off) { struct thread_data *td = data; @@ -720,7 +719,7 @@ static int str_gtod_reduce_cb(void *data, int *il) return 0; } -static int str_gtod_cpu_cb(void *data, int *il) +static int str_gtod_cpu_cb(void *data, long long *il) { struct thread_data *td = data; int val = *il; @@ -881,6 +880,24 @@ static struct fio_option options[FIO_MAX_OPTS] = { }, }, }, + { + .name = "rw_sequencer", + .type = FIO_OPT_STR, + .off1 = td_var_offset(rw_seq), + .help = "IO offset generator modifier", + .def = "sequential", + .posval = { + { .ival = "sequential", + .oval = RW_SEQ_SEQ, + .help = "Generate sequential offsets", + }, + { .ival = "identical", + .oval = RW_SEQ_IDENT, + .help = "Generate identical offsets", + }, + }, + }, + { .name = "ioengine", .type = FIO_OPT_STR_STORE,