rate: fix bad math
[fio.git] / init.c
diff --git a/init.c b/init.c
index 7c16b0602e252ecd76dae31fe7d044af8f55ccb6..c34bd1599661597b31b4701e9c8dfa00cb06e8fa 100644 (file)
--- a/init.c
+++ b/init.c
@@ -32,6 +32,7 @@
 
 #include "crc/test.h"
 #include "lib/pow2.h"
+#include "lib/memcpy.h"
 
 const char fio_version_string[] = FIO_VERSION;
 
@@ -233,6 +234,11 @@ static struct option l_opts[FIO_NR_OPTIONS] = {
                .has_arg        = optional_argument,
                .val            = 'G',
        },
+       {
+               .name           = (char *) "memcpytest",
+               .has_arg        = optional_argument,
+               .val            = 'M',
+       },
        {
                .name           = (char *) "idle-prof",
                .has_arg        = required_argument,
@@ -1112,6 +1118,7 @@ int ioengine_load(struct thread_data *td)
 static void init_flags(struct thread_data *td)
 {
        struct thread_options *o = &td->o;
+       int i;
 
        if (o->verify_backlog)
                td->flags |= TD_F_VER_BACKLOG;
@@ -1141,6 +1148,13 @@ static void init_flags(struct thread_data *td)
 
        if (o->mem_type == MEM_CUDA_MALLOC)
                td->flags &= ~TD_F_SCRAMBLE_BUFFERS;
+
+       for (i = 0; i < DDIR_RWDIR_CNT; i++) {
+               if (option_check_rate(td, i)) {
+                       td->flags |= TD_F_CHECK_RATE;
+                       break;
+               }
+       }
 }
 
 static int setup_random_seeds(struct thread_data *td)
@@ -2723,6 +2737,11 @@ int parse_cmd_line(int argc, char *argv[], int client_type)
                        do_exit++;
                        exit_val = fio_crctest(optarg);
                        break;
+               case 'M':
+                       did_arg = true;
+                       do_exit++;
+                       exit_val = fio_memcpy_test(optarg);
+                       break;
                case 'L': {
                        long long val;