.name = "General I/O",
.mask = FIO_OPT_G_IO_BASIC,
},
+ {
+ .name = "Cgroups",
+ .mask = FIO_OPT_G_CGROUP,
+ },
+ {
+ .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 = NULL,
}
.category = FIO_OPT_C_GENERAL,
.group = FIO_OPT_G_DESC,
},
- {
- .name = "kb_base",
- .lname = "KB Base",
- .type = FIO_OPT_INT,
- .off1 = td_var_offset(kb_base),
- .verify = kb_base_verify,
- .prio = 1,
- .def = "1024",
- .help = "How many bytes per KB for reporting (1000 or 1024)",
- .category = FIO_OPT_C_GENERAL,
- .group = FIO_OPT_G_INVALID,
- },
{
.name = "filename",
.lname = "Filename(s)",
.def = "1",
.interval = 1,
.category = FIO_OPT_C_GENERAL,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_RUNTIME,
},
{
.name = "numjobs",
.def = "1",
.interval = 1,
.category = FIO_OPT_C_GENERAL,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_RUNTIME,
},
{
.name = "startdelay",
.help = "Only start job when this period has passed",
.def = "0",
.category = FIO_OPT_C_GENERAL,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_RUNTIME,
},
{
.name = "runtime",
.help = "Stop workload when this amount of time has passed",
.def = "0",
.category = FIO_OPT_C_GENERAL,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_RUNTIME,
},
{
.name = "time_based",
.off1 = td_var_offset(time_based),
.help = "Keep running until runtime/timeout is met",
.category = FIO_OPT_C_GENERAL,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_RUNTIME,
},
{
.name = "ramp_time",
.off1 = td_var_offset(ramp_time),
.help = "Ramp up time before measuring performance",
.category = FIO_OPT_C_GENERAL,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_RUNTIME,
},
{
.name = "clocksource",
.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,
.help = "Percentage of mixed workload that is reads",
.def = "50",
.interval = 5,
+ .inverse = "rwmixwrite",
.category = FIO_OPT_C_IO,
.group = FIO_OPT_G_RWMIX,
},
.help = "Percentage of mixed workload that is writes",
.def = "50",
.interval = 5,
+ .inverse = "rwmixread",
.category = FIO_OPT_C_IO,
.group = FIO_OPT_G_RWMIX,
},
.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
{
.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
{
.cb = str_exitall_cb,
.help = "Terminate all jobs when one exits",
.category = FIO_OPT_C_GENERAL,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_PROCESS,
},
{
.name = "stonewall",
.off1 = td_var_offset(stonewall),
.help = "Insert a hard barrier between this job and previous",
.category = FIO_OPT_C_GENERAL,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_PROCESS,
},
{
.name = "new_group",
.off1 = td_var_offset(new_group),
.help = "Mark the start of a new group (for reporting)",
.category = FIO_OPT_C_GENERAL,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_PROCESS,
},
{
.name = "thread",
.off1 = td_var_offset(use_thread),
.help = "Use threads instead of processes",
.category = FIO_OPT_C_GENERAL,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_PROCESS,
},
{
.name = "write_bw_log",
.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,
},
{
.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(cgroup),
.help = "Add job to cgroup of this name",
.category = FIO_OPT_C_GENERAL,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_CGROUP,
+ },
+ {
+ .name = "cgroup_nodelete",
+ .lname = "Cgroup no-delete",
+ .type = FIO_OPT_BOOL,
+ .off1 = td_var_offset(cgroup_nodelete),
+ .help = "Do not delete cgroups after job completion",
+ .def = "0",
+ .parent = "cgroup",
+ .category = FIO_OPT_C_GENERAL,
+ .group = FIO_OPT_G_CGROUP,
},
{
.name = "cgroup_weight",
.help = "Use given weight for cgroup",
.minval = 100,
.maxval = 1000,
+ .parent = "cgroup",
.category = FIO_OPT_C_GENERAL,
- .group = FIO_OPT_G_INVALID,
- },
- {
- .name = "cgroup_nodelete",
- .lname = "Cgroup no-delete",
- .type = FIO_OPT_BOOL,
- .off1 = td_var_offset(cgroup_nodelete),
- .help = "Do not delete cgroups after job completion",
- .def = "0",
- .category = FIO_OPT_C_GENERAL,
- .group = FIO_OPT_G_INVALID,
+ .group = FIO_OPT_G_CGROUP,
},
{
.name = "uid",
.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_CRED,
+ },
+ {
+ .name = "kb_base",
+ .lname = "KB Base",
+ .type = FIO_OPT_INT,
+ .off1 = td_var_offset(kb_base),
+ .verify = kb_base_verify,
+ .prio = 1,
+ .def = "1024",
+ .help = "How many bytes per KB for reporting (1000 or 1024)",
+ .category = FIO_OPT_C_GENERAL,
.group = FIO_OPT_G_INVALID,
},
{