Add 'stats' option
[fio.git] / options.c
index 0f2adcd454c57823e59d931ec977052ab65a058d..e0deab0a4d1020eed452078b521341a4c514bc15 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,
@@ -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,
@@ -2670,6 +2674,22 @@ struct fio_option fio_options[FIO_MAX_OPTS] = {
                            .oval = VERIFY_SHA512,
                            .help = "Use sha512 checksums for verification",
                          },
+                         { .ival = "sha3-224",
+                           .oval = VERIFY_SHA3_224,
+                           .help = "Use sha3-224 checksums for verification",
+                         },
+                         { .ival = "sha3-256",
+                           .oval = VERIFY_SHA3_256,
+                           .help = "Use sha3-256 checksums for verification",
+                         },
+                         { .ival = "sha3-384",
+                           .oval = VERIFY_SHA3_384,
+                           .help = "Use sha3-384 checksums for verification",
+                         },
+                         { .ival = "sha3-512",
+                           .oval = VERIFY_SHA3_512,
+                           .help = "Use sha3-512 checksums for verification",
+                         },
                          { .ival = "xxhash",
                            .oval = VERIFY_XXHASH,
                            .help = "Use xxhash checksums for verification",
@@ -3845,6 +3865,16 @@ struct fio_option fio_options[FIO_MAX_OPTS] = {
                .category = FIO_OPT_C_STAT,
                .group  = FIO_OPT_G_INVALID,
        },
+       {
+               .name   = "stats",
+               .lname  = "Stats",
+               .type   = FIO_OPT_BOOL,
+               .off1   = offsetof(struct thread_options, stats),
+               .help   = "Enable collection of stats",
+               .def    = "1",
+               .category = FIO_OPT_C_STAT,
+               .group  = FIO_OPT_G_INVALID,
+       },
        {
                .name   = "zero_buffers",
                .lname  = "Zero I/O buffers",
@@ -4771,34 +4801,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);
        }
 }