Rename TD_F_VER_NONE into TD_F_DO_VERIFY
[fio.git] / init.c
diff --git a/init.c b/init.c
index 8861c994b4858e998d2c0a14dfe032d41d5097df..0b6fedd97ca3e0fd7ff60e6190b337075ab2d315 100644 (file)
--- a/init.c
+++ b/init.c
@@ -4,14 +4,17 @@
 #include <stdio.h>
 #include <stdlib.h>
 #include <unistd.h>
-#include <fcntl.h>
 #include <ctype.h>
 #include <string.h>
 #include <errno.h>
 #include <sys/ipc.h>
 #include <sys/types.h>
-#include <sys/stat.h>
 #include <dlfcn.h>
+#ifdef CONFIG_VALGRIND_DEV
+#include <valgrind/drd.h>
+#else
+#define DRD_IGNORE_VAR(x) do { } while (0)
+#endif
 
 #include "fio.h"
 #ifndef FIO_NO_HAVE_SHM_H
@@ -79,6 +82,7 @@ static int prev_group_jobs;
 unsigned long fio_debug = 0;
 unsigned int fio_debug_jobno = -1;
 unsigned int *fio_debug_jobp = NULL;
+unsigned int *fio_warned = NULL;
 
 static char cmd_optstr[256];
 static bool did_arg;
@@ -309,6 +313,7 @@ static void free_shm(void)
        if (threads) {
                flow_exit();
                fio_debug_jobp = NULL;
+               fio_warned = NULL;
                free_threads_shm();
        }
 
@@ -331,6 +336,8 @@ static void free_shm(void)
  */
 static int setup_thread_area(void)
 {
+       int i;
+
        if (threads)
                return 0;
 
@@ -341,7 +348,7 @@ static int setup_thread_area(void)
        do {
                size_t size = max_jobs * sizeof(struct thread_data);
 
-               size += sizeof(unsigned int);
+               size += 2 * sizeof(unsigned int);
 
 #ifndef CONFIG_NO_SHM
                shm_id = shmget(0, size, IPC_CREAT | 0600);
@@ -374,8 +381,12 @@ static int setup_thread_area(void)
 #endif
 
        memset(threads, 0, max_jobs * sizeof(struct thread_data));
+       for (i = 0; i < max_jobs; i++)
+               DRD_IGNORE_VAR(threads[i]);
        fio_debug_jobp = (unsigned int *)(threads + max_jobs);
        *fio_debug_jobp = -1;
+       fio_warned = fio_debug_jobp + 1;
+       *fio_warned = 0;
 
        flow_init();
 
@@ -806,10 +817,10 @@ static int fixup_options(struct thread_data *td)
                 * write size
                 */
                if (!o->verify_interval ||
-                               o->min_bs[DDIR_WRITE] % o->verify_interval ||
-                               o->max_bs[DDIR_WRITE] % o->verify_interval)
+                   (o->min_bs[DDIR_WRITE] % o->verify_interval) ||
+                   (o->max_bs[DDIR_WRITE] % o->verify_interval))
                        o->verify_interval = gcd(o->min_bs[DDIR_WRITE],
-                                                o->max_bs[DDIR_WRITE]);
+                                                       o->max_bs[DDIR_WRITE]);
        }
 
        if (o->pre_read) {
@@ -1173,7 +1184,7 @@ static void init_flags(struct thread_data *td)
            fio_option_is_set(o, zero_buffers)))
                td->flags |= TD_F_SCRAMBLE_BUFFERS;
        if (o->verify != VERIFY_NONE)
-               td->flags |= TD_F_VER_NONE;
+               td->flags |= TD_F_DO_VERIFY;
 
        if (o->verify_async || o->io_submit_mode == IO_MODE_OFFLOAD)
                td->flags |= TD_F_NEED_LOCK;
@@ -1467,7 +1478,7 @@ static int add_job(struct thread_data *td, const char *jobname, int job_add_num,
                        f->real_file_size = -1ULL;
        }
 
-       td->mutex = fio_mutex_init(FIO_MUTEX_LOCKED);
+       td->sem = fio_sem_init(FIO_SEM_LOCKED);
 
        td->ts.clat_percentiles = o->clat_percentiles;
        td->ts.lat_percentiles = o->lat_percentiles;
@@ -2090,7 +2101,7 @@ static int fill_def_thread(void)
 static void show_debug_categories(void)
 {
 #ifdef FIO_INC_DEBUG
-       struct debug_level *dl = &debug_levels[0];
+       const struct debug_level *dl = &debug_levels[0];
        int curlen, first = 1;
 
        curlen = 0;
@@ -2180,7 +2191,7 @@ static void usage(const char *name)
 }
 
 #ifdef FIO_INC_DEBUG
-struct debug_level debug_levels[] = {
+const struct debug_level debug_levels[] = {
        { .name = "process",
          .help = "Process creation/exit logging",
          .shift = FD_PROCESS,
@@ -2258,7 +2269,7 @@ struct debug_level debug_levels[] = {
 
 static int set_debug(const char *string)
 {
-       struct debug_level *dl;
+       const struct debug_level *dl;
        char *p = (char *) string;
        char *opt;
        int i;