.name = "Runtime",
.mask = FIO_OPT_G_RUNTIME,
},
+ {
+ .name = "Process",
+ .mask = FIO_OPT_G_PROCESS,
+ },
+ {
+ .name = "Job credentials / priority",
+ .mask = FIO_OPT_G_CRED,
+ },
+ {
+ .name = "Clock settings",
+ .mask = FIO_OPT_G_CLOCK,
+ },
+ {
+ .name = "I/O Type",
+ .mask = FIO_OPT_G_IO_TYPE,
+ },
+ {
+ .name = "I/O Thinktime",
+ .mask = FIO_OPT_G_THINKTIME,
+ },
+ {
+ .name = "Randomizations",
+ .mask = FIO_OPT_G_RANDOM,
+ },
+ {
+ .name = "I/O buffers",
+ .mask = FIO_OPT_G_IO_BUF,
+ },
{
.name = NULL,
}
.parent = "rw",
.hide = 1,
.category = FIO_OPT_C_IO,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_RANDOM,
},
{
.name = "use_os_rand",
.parent = "rw",
.hide = 1,
.category = FIO_OPT_C_IO,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_RANDOM,
},
{
.name = "norandommap",
.parent = "rw",
.hide = 1,
.category = FIO_OPT_C_IO,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_RANDOM,
},
{
.name = "softrandommap",
.hide = 1,
.def = "0",
.category = FIO_OPT_C_IO,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_RANDOM,
},
{
.name = "nrfiles",
.off1 = td_var_offset(odirect),
.help = "Use O_DIRECT IO (negates buffered)",
.def = "0",
+ .inverse = "buffered",
.category = FIO_OPT_C_IO,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_IO_TYPE,
},
{
.name = "buffered",
.neg = 1,
.help = "Use buffered IO (negates direct)",
.def = "1",
+ .inverse = "direct",
.category = FIO_OPT_C_IO,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_IO_TYPE,
},
{
.name = "overwrite",
.off1 = td_var_offset(clocksource),
.help = "What type of timing source to use",
.category = FIO_OPT_C_GENERAL,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_CLOCK,
.posval = {
{ .ival = "gettimeofday",
.oval = CS_GTOD,
.cb = str_verify_cb,
.def = "0",
.category = FIO_OPT_C_IO,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_VERIFY,
.posval = {
{ .ival = "0",
.oval = VERIFY_NONE,
.def = "0",
.interval = 1,
.category = FIO_OPT_C_GENERAL,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_CRED,
},
#ifdef FIO_HAVE_IOPRIO
{
.maxval = 7,
.interval = 1,
.category = FIO_OPT_C_GENERAL,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_CRED,
},
{
.name = "prioclass",
.maxval = 3,
.interval = 1,
.category = FIO_OPT_C_GENERAL,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_CRED,
},
#endif
{
.help = "Idle time between IO buffers (usec)",
.def = "0",
.category = FIO_OPT_C_IO,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_THINKTIME,
},
{
.name = "thinktime_spin",
.parent = "thinktime",
.hide = 1,
.category = FIO_OPT_C_IO,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_THINKTIME,
},
{
.name = "thinktime_blocks",
.parent = "thinktime",
.hide = 1,
.category = FIO_OPT_C_IO,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_THINKTIME,
},
{
.name = "rate",
.help = "Invalidate buffer/page cache prior to running job",
.def = "1",
.category = FIO_OPT_C_IO,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_IO_TYPE,
},
{
.name = "sync",
.parent = "buffered",
.hide = 1,
.category = FIO_OPT_C_IO,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_IO_TYPE,
},
{
.name = "bwavgtime",
.cb = str_cpumask_cb,
.help = "CPU affinity mask",
.category = FIO_OPT_C_GENERAL,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_CRED,
},
{
.name = "cpus_allowed",
.cb = str_cpus_allowed_cb,
.help = "Set CPUs allowed",
.category = FIO_OPT_C_GENERAL,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_CRED,
},
#endif
{
.category = FIO_OPT_C_LOG,
.group = FIO_OPT_G_INVALID,
},
- {
- .name = "hugepage-size",
- .lname = "Hugepage size",
- .type = FIO_OPT_INT,
- .off1 = td_var_offset(hugepage_size),
- .help = "When using hugepages, specify size of each page",
- .def = __fio_stringify(FIO_HUGE_PAGE),
- .interval = 1024 * 1024,
- .category = FIO_OPT_C_GENERAL,
- .group = FIO_OPT_G_INVALID,
- },
{
.name = "group_reporting",
.lname = "Group reporting",
.off1 = td_var_offset(group_reporting),
.help = "Do reporting on a per-group basis",
.def = "1",
- .category = FIO_OPT_C_GENERAL,
+ .category = FIO_OPT_C_STAT,
.group = FIO_OPT_G_INVALID,
},
{
.off1 = td_var_offset(zero_buffers),
.help = "Init IO buffers to all zeroes",
.category = FIO_OPT_C_IO,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_IO_BUF,
},
{
.name = "refill_buffers",
.off1 = td_var_offset(refill_buffers),
.help = "Refill IO buffers on every IO submit",
.category = FIO_OPT_C_IO,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_IO_BUF,
},
{
.name = "scramble_buffers",
.help = "Slightly scramble buffers on every IO submit",
.def = "1",
.category = FIO_OPT_C_IO,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_IO_BUF,
},
{
.name = "buffer_compress_percentage",
.help = "How compressible the buffer is (approximately)",
.interval = 5,
.category = FIO_OPT_C_IO,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_IO_BUF,
},
{
.name = "buffer_compress_chunk",
.help = "Size of compressible region in buffer",
.interval = 256,
.category = FIO_OPT_C_IO,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_IO_BUF,
},
{
.name = "clat_percentiles",
.help = "Set up dedicated gettimeofday() thread on this CPU",
.verify = gtod_cpu_verify,
.category = FIO_OPT_C_GENERAL,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_CLOCK,
},
{
.name = "continue_on_error",
.off1 = td_var_offset(uid),
.help = "Run job with this user ID",
.category = FIO_OPT_C_GENERAL,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_CRED,
},
{
.name = "gid",
.off1 = td_var_offset(gid),
.help = "Run job with this group ID",
.category = FIO_OPT_C_GENERAL,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_CRED,
},
{
.name = "kb_base",
.category = FIO_OPT_C_GENERAL,
.group = FIO_OPT_G_INVALID,
},
+ {
+ .name = "hugepage-size",
+ .lname = "Hugepage size",
+ .type = FIO_OPT_INT,
+ .off1 = td_var_offset(hugepage_size),
+ .help = "When using hugepages, specify size of each page",
+ .def = __fio_stringify(FIO_HUGE_PAGE),
+ .interval = 1024 * 1024,
+ .category = FIO_OPT_C_GENERAL,
+ .group = FIO_OPT_G_INVALID,
+ },
{
.name = "flow_id",
.lname = "I/O flow ID",