Add details of file number/size related options to HOWTO
[fio.git] / options.c
index b81db23115009e065b49eb717dd16cf52bc5b8a3..a543e5a3107c382403959d1cd2794fb156f83b4e 100644 (file)
--- a/options.c
+++ b/options.c
@@ -1233,6 +1233,9 @@ static int str_filename_cb(void *data, const char *input)
        strip_blank_front(&str);
        strip_blank_end(str);
 
+       /*
+        * Ignore what we may already have from nrfiles option.
+        */
        if (!td->files_index)
                td->o.nr_files = 0;
 
@@ -1882,7 +1885,8 @@ struct fio_option fio_options[FIO_MAX_OPTS] = {
                .alias  = "io_limit",
                .lname  = "IO Size",
                .type   = FIO_OPT_STR_VAL,
-               .off1   = offsetof(struct thread_options, io_limit),
+               .off1   = offsetof(struct thread_options, io_size),
+               .help   = "Total size of I/O to be performed",
                .interval = 1024 * 1024,
                .category = FIO_OPT_C_IO,
                .group  = FIO_OPT_G_INVALID,
@@ -1965,7 +1969,7 @@ struct fio_option fio_options[FIO_MAX_OPTS] = {
                .off3   = offsetof(struct thread_options, bs[DDIR_TRIM]),
                .minval = 1,
                .help   = "Block size unit",
-               .def    = "4k",
+               .def    = "4096",
                .parent = "rw",
                .hide   = 1,
                .interval = 512,
@@ -2234,7 +2238,7 @@ struct fio_option fio_options[FIO_MAX_OPTS] = {
                          },
                          { .ival = "gauss",
                            .oval = FIO_FSERVICE_GAUSS,
-                           .help = "Normal (gaussian) distribution",
+                           .help = "Normal (Gaussian) distribution",
                          },
                          { .ival = "roundrobin",
                            .oval = FIO_FSERVICE_RR,
@@ -2885,7 +2889,7 @@ struct fio_option fio_options[FIO_MAX_OPTS] = {
                .off1   = offsetof(struct thread_options, trim_percentage),
                .minval = 0,
                .maxval = 100,
-               .help   = "Number of verify blocks to discard/trim",
+               .help   = "Number of verify blocks to trim (i.e., discard)",
                .parent = "verify",
                .def    = "0",
                .interval = 1,
@@ -2897,7 +2901,7 @@ struct fio_option fio_options[FIO_MAX_OPTS] = {
                .name   = "trim_verify_zero",
                .lname  = "Verify trim zero",
                .type   = FIO_OPT_BOOL,
-               .help   = "Verify that trim/discarded blocks are returned as zeroes",
+               .help   = "Verify that trimmed (i.e., discarded) blocks are returned as zeroes",
                .off1   = offsetof(struct thread_options, trim_zero),
                .parent = "trim_percentage",
                .hide   = 1,
@@ -4180,20 +4184,20 @@ struct fio_option fio_options[FIO_MAX_OPTS] = {
                .posval = {
                          { .ival = "1024",
                            .oval = 1024,
-                           .help = "Use 1024 as the K base",
+                           .help = "Inputs invert IEC and SI prefixes (for compatibility); outputs prefer binary",
                          },
                          { .ival = "1000",
                            .oval = 1000,
-                           .help = "Use 1000 as the K base",
+                           .help = "Inputs use IEC and SI prefixes; outputs prefer SI",
                          },
                },
-               .help   = "How many bytes per KB for reporting (1000 or 1024)",
+               .help   = "Unit prefix interpretation for quantities of data (IEC and SI)",
                .category = FIO_OPT_C_GENERAL,
                .group  = FIO_OPT_G_INVALID,
        },
        {
                .name   = "unit_base",
-               .lname  = "Base unit for reporting (Bits or Bytes)",
+               .lname  = "Unit for quantities of data (Bits or Bytes)",
                .type   = FIO_OPT_INT,
                .off1   = offsetof(struct thread_options, unit_base),
                .prio   = 1,
@@ -4321,6 +4325,7 @@ struct fio_option fio_options[FIO_MAX_OPTS] = {
                .name   = "steadystate_duration",
                .lname  = "Steady state duration",
                .alias  = "ss_dur",
+               .parent = "steadystate",
                .type   = FIO_OPT_STR_VAL_TIME,
                .off1   = offsetof(struct thread_options, ss_dur),
                .help   = "Stop workload upon attaining steady state for specified duration",
@@ -4334,6 +4339,7 @@ struct fio_option fio_options[FIO_MAX_OPTS] = {
                .name   = "steadystate_ramp_time",
                .lname  = "Steady state ramp time",
                .alias  = "ss_ramp",
+               .parent = "steadystate",
                .type   = FIO_OPT_STR_VAL_TIME,
                .off1   = offsetof(struct thread_options, ss_ramp_time),
                .help   = "Delay before initiation of data collection for steady state job termination testing",
@@ -4769,34 +4775,19 @@ int fio_show_option_help(const char *opt)
        return show_cmd_help(fio_options, opt);
 }
 
-void options_mem_dupe(void *data, struct fio_option *options)
-{
-       struct fio_option *o;
-       char **ptr;
-
-       for (o = &options[0]; o->name; o++) {
-               if (o->type != FIO_OPT_STR_STORE)
-                       continue;
-
-               ptr = td_var(data, o, o->off1);
-               if (*ptr)
-                       *ptr = strdup(*ptr);
-       }
-}
-
 /*
  * dupe FIO_OPT_STR_STORE options
  */
 void fio_options_mem_dupe(struct thread_data *td)
 {
-       options_mem_dupe(&td->o, fio_options);
+       options_mem_dupe(fio_options, &td->o);
 
        if (td->eo && td->io_ops) {
                void *oldeo = td->eo;
 
                td->eo = malloc(td->io_ops->option_struct_size);
                memcpy(td->eo, oldeo, td->io_ops->option_struct_size);
-               options_mem_dupe(td->eo, td->io_ops->options);
+               options_mem_dupe(td->io_ops->options, td->eo);
        }
 }