server: initial support for command line passing
[fio.git] / options.c
index 6f7c41ed1d3df25a07b0f08c932220f752ca553f..1914037583fb24163936e18aac7b4473aed87728 100644 (file)
--- a/options.c
+++ b/options.c
@@ -226,6 +226,21 @@ static int str_rw_cb(void *data, const char *str)
        return 0;
 }
 
        return 0;
 }
 
+#ifdef FIO_HAVE_LIBAIO
+static int str_libaio_cb(void *data, const char *str)
+{
+       struct thread_data *td = data;
+
+       if (!strcmp(str, "userspace_reap")) {
+               td->o.userspace_libaio_reap = 1;
+               return 0;
+       }
+
+       log_err("fio: bad libaio sub-option: %s\n", str);
+       return 1;
+}
+#endif
+
 static int str_mem_cb(void *data, const char *mem)
 {
        struct thread_data *td = data;
 static int str_mem_cb(void *data, const char *mem)
 {
        struct thread_data *td = data;
@@ -814,9 +829,6 @@ static int kb_base_verify(struct fio_option *o, void *data)
        return 0;
 }
 
        return 0;
 }
 
-#define __stringify_1(x)       #x
-#define __stringify(x)         __stringify_1(x)
-
 /*
  * Map of job/command line options
  */
 /*
  * Map of job/command line options
  */
@@ -961,6 +973,7 @@ static struct fio_option options[FIO_MAX_OPTS] = {
 #ifdef FIO_HAVE_LIBAIO
                          { .ival = "libaio",
                            .help = "Linux native asynchronous IO",
 #ifdef FIO_HAVE_LIBAIO
                          { .ival = "libaio",
                            .help = "Linux native asynchronous IO",
+                           .cb   = str_libaio_cb,
                          },
 #endif
 #ifdef FIO_HAVE_POSIXAIO
                          },
 #endif
 #ifdef FIO_HAVE_POSIXAIO
@@ -1930,7 +1943,7 @@ static struct fio_option options[FIO_MAX_OPTS] = {
                .type   = FIO_OPT_INT,
                .off1   = td_var_offset(hugepage_size),
                .help   = "When using hugepages, specify size of each page",
                .type   = FIO_OPT_INT,
                .off1   = td_var_offset(hugepage_size),
                .help   = "When using hugepages, specify size of each page",
-               .def    = __stringify(FIO_HUGE_PAGE),
+               .def    = __fio_stringify(FIO_HUGE_PAGE),
        },
        {
                .name   = "group_reporting",
        },
        {
                .name   = "group_reporting",
@@ -1950,6 +1963,13 @@ static struct fio_option options[FIO_MAX_OPTS] = {
                .off1   = td_var_offset(refill_buffers),
                .help   = "Refill IO buffers on every IO submit",
        },
                .off1   = td_var_offset(refill_buffers),
                .help   = "Refill IO buffers on every IO submit",
        },
+       {
+               .name   = "scramble_buffers",
+               .type   = FIO_OPT_BOOL,
+               .off1   = td_var_offset(scramble_buffers),
+               .help   = "Slightly scramble buffers on every IO submit",
+               .def    = "1",
+       },
        {
                .name   = "clat_percentiles",
                .type   = FIO_OPT_BOOL,
        {
                .name   = "clat_percentiles",
                .type   = FIO_OPT_BOOL,
@@ -2069,15 +2089,6 @@ static struct fio_option options[FIO_MAX_OPTS] = {
                .off1   = td_var_offset(gid),
                .help   = "Run job with this group ID",
        },
                .off1   = td_var_offset(gid),
                .help   = "Run job with this group ID",
        },
-#ifdef FIO_HAVE_LIBAIO
-       {
-               .name   = "userspace_libaio_reap",
-               .type   = FIO_OPT_BOOL,
-               .off1   = td_var_offset(userspace_libaio_reap),
-               .help   = "When using the libaio engine with iodepth_batch_complete=0, enable userspace reaping",
-               .def    = "0",
-       },
-#endif
        {
                .name = NULL,
        },
        {
                .name = NULL,
        },