projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
eta: fix dead variable assignments
[fio.git]
/
init.c
diff --git
a/init.c
b/init.c
index ae3c4f74c9dbf86bd61e4c1da3565a9a1544cbad..0b6fedd97ca3e0fd7ff60e6190b337075ab2d315 100644
(file)
--- a/
init.c
+++ b/
init.c
@@
-4,14
+4,17
@@
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#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 <ctype.h>
#include <string.h>
#include <errno.h>
#include <sys/ipc.h>
#include <sys/types.h>
-#include <sys/stat.h>
#include <dlfcn.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
#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 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;
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;
if (threads) {
flow_exit();
fio_debug_jobp = NULL;
+ fio_warned = NULL;
free_threads_shm();
}
free_threads_shm();
}
@@
-331,6
+336,8
@@
static void free_shm(void)
*/
static int setup_thread_area(void)
{
*/
static int setup_thread_area(void)
{
+ int i;
+
if (threads)
return 0;
if (threads)
return 0;
@@
-341,7
+348,7
@@
static int setup_thread_area(void)
do {
size_t size = max_jobs * sizeof(struct thread_data);
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);
#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));
#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_debug_jobp = (unsigned int *)(threads + max_jobs);
*fio_debug_jobp = -1;
+ fio_warned = fio_debug_jobp + 1;
+ *fio_warned = 0;
flow_init();
flow_init();
@@
-802,11
+813,12
@@
static int fixup_options(struct thread_data *td)
o->verify_interval = o->min_bs[DDIR_READ];
/*
o->verify_interval = o->min_bs[DDIR_READ];
/*
- * Verify interval must be a factor o
r
both min and max
+ * Verify interval must be a factor o
f
both min and max
* write size
*/
* write size
*/
- if (o->verify_interval % o->min_bs[DDIR_WRITE] ||
- o->verify_interval % o->max_bs[DDIR_WRITE])
+ if (!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->verify_interval = gcd(o->min_bs[DDIR_WRITE],
o->max_bs[DDIR_WRITE]);
}
@@
-1172,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)
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;
if (o->verify_async || o->io_submit_mode == IO_MODE_OFFLOAD)
td->flags |= TD_F_NEED_LOCK;
@@
-1466,7
+1478,7
@@
static int add_job(struct thread_data *td, const char *jobname, int job_add_num,
f->real_file_size = -1ULL;
}
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;
td->ts.clat_percentiles = o->clat_percentiles;
td->ts.lat_percentiles = o->lat_percentiles;
@@
-1585,7
+1597,7
@@
static int add_job(struct thread_data *td, const char *jobname, int job_add_num,
p.avg_msec = min(o->log_avg_msec, o->bw_avg_time);
else
o->bw_avg_time = p.avg_msec;
p.avg_msec = min(o->log_avg_msec, o->bw_avg_time);
else
o->bw_avg_time = p.avg_msec;
-
+
p.hist_msec = o->log_hist_msec;
p.hist_coarseness = o->log_hist_coarseness;
p.hist_msec = o->log_hist_msec;
p.hist_coarseness = o->log_hist_coarseness;
@@
-1616,7
+1628,7
@@
static int add_job(struct thread_data *td, const char *jobname, int job_add_num,
p.avg_msec = min(o->log_avg_msec, o->iops_avg_time);
else
o->iops_avg_time = p.avg_msec;
p.avg_msec = min(o->log_avg_msec, o->iops_avg_time);
else
o->iops_avg_time = p.avg_msec;
-
+
p.hist_msec = o->log_hist_msec;
p.hist_coarseness = o->log_hist_coarseness;
p.hist_msec = o->log_hist_msec;
p.hist_coarseness = o->log_hist_coarseness;
@@
-2089,7
+2101,7
@@
static int fill_def_thread(void)
static void show_debug_categories(void)
{
#ifdef FIO_INC_DEBUG
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;
int curlen, first = 1;
curlen = 0;
@@
-2179,7
+2191,7
@@
static void usage(const char *name)
}
#ifdef FIO_INC_DEBUG
}
#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,
{ .name = "process",
.help = "Process creation/exit logging",
.shift = FD_PROCESS,
@@
-2257,7
+2269,7
@@
struct debug_level debug_levels[] = {
static int set_debug(const char *string)
{
static int set_debug(const char *string)
{
- struct debug_level *dl;
+
const
struct debug_level *dl;
char *p = (char *) string;
char *opt;
int i;
char *p = (char *) string;
char *opt;
int i;