+ .type = FIO_OPT_STR_STORE,
+ .off1 = td_var_offset(ioengine),
+ .help = "IO engine to use",
+ .def = "sync",
+ .posval = {
+ { .ival = "sync", },
+#ifdef FIO_HAVE_LIBAIO
+ { .ival = "libaio", },
+#endif
+#ifdef FIO_HAVE_POSIXAIO
+ { .ival = "posixaio", },
+#endif
+ { .ival = "mmap", },
+#ifdef FIO_HAVE_SPLICE
+ { .ival = "splice", },
+#endif
+#ifdef FIO_HAVE_SGIO
+ { .ival = "sg", },
+#endif
+ { .ival = "null", }, { .ival = "net", },
+#ifdef FIO_HAVE_SYSLET
+ { .ival = "syslet-rw", },
+#endif
+ { .ival = "cpuio", },
+ { .ival = "external", },
+ },
+ },
+ {
+ .name = "iodepth",
+ .type = FIO_OPT_INT,
+ .off1 = td_var_offset(iodepth),
+ .help = "Amount of IO buffers to keep in flight",
+ .def = "1",
+ },
+ {
+ .name = "iodepth_batch",
+ .type = FIO_OPT_INT,
+ .off1 = td_var_offset(iodepth_batch),
+ .help = "Number of IO to submit in one go",
+ },
+ {
+ .name = "iodepth_low",
+ .type = FIO_OPT_INT,
+ .off1 = td_var_offset(iodepth_low),
+ .help = "Low water mark for queuing depth",
+ },
+ {
+ .name = "size",
+ .type = FIO_OPT_STR_VAL,
+ .off1 = td_var_offset(total_file_size),
+ .help = "Size of device or file",
+ },
+ {
+ .name = "bs",
+ .type = FIO_OPT_STR_VAL_INT,
+ .off1 = td_var_offset(bs[DDIR_READ]),
+ .off2 = td_var_offset(bs[DDIR_WRITE]),
+ .help = "Block size unit",
+ .def = "4k",
+ },
+ {
+ .name = "bsrange",
+ .type = FIO_OPT_RANGE,
+ .off1 = td_var_offset(min_bs[DDIR_READ]),
+ .off2 = td_var_offset(max_bs[DDIR_READ]),
+ .off3 = td_var_offset(min_bs[DDIR_WRITE]),
+ .off4 = td_var_offset(max_bs[DDIR_WRITE]),
+ .help = "Set block size range (in more detail than bs)",
+ },
+ {
+ .name = "bs_unaligned",
+ .type = FIO_OPT_STR_SET,
+ .off1 = td_var_offset(bs_unaligned),
+ .help = "Don't sector align IO buffer sizes",
+ },
+ {
+ .name = "offset",
+ .type = FIO_OPT_STR_VAL,
+ .off1 = td_var_offset(start_offset),
+ .help = "Start IO from this offset",
+ .def = "0",
+ },
+ {
+ .name = "randrepeat",
+ .type = FIO_OPT_BOOL,
+ .off1 = td_var_offset(rand_repeatable),
+ .help = "Use repeatable random IO pattern",
+ .def = "1",
+ },
+ {
+ .name = "norandommap",
+ .type = FIO_OPT_STR_SET,
+ .off1 = td_var_offset(norandommap),
+ .help = "Accept potential duplicate random blocks",
+ },
+ {
+ .name = "nrfiles",
+ .type = FIO_OPT_INT,
+ .off1 = td_var_offset(nr_files),
+ .help = "Split job workload between this number of files",
+ .def = "1",
+ },
+ {
+ .name = "openfiles",
+ .type = FIO_OPT_INT,
+ .off1 = td_var_offset(open_files),
+ .help = "Number of files to keep open at the same time",
+ },
+ {
+ .name = "file_service_type",