projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Get rid of mixed rw and verify warning
[fio.git]
/
init.c
diff --git
a/init.c
b/init.c
index bce284664c8f2e965f19e8db16dd3f813cc0d360..327a3c5edc6a78e171f9a2cdeb50613f75db2d01 100644
(file)
--- a/
init.c
+++ b/
init.c
@@
-22,7
+22,7
@@
#include "lib/getopt.h"
#include "lib/getopt.h"
-static char fio_version_string[] = "fio 1.5
0-rc3
";
+static char fio_version_string[] = "fio 1.5
1
";
#define FIO_RANDSEED (0xb1899bedUL)
#define FIO_RANDSEED (0xb1899bedUL)
@@
-39,7
+39,8
@@
int eta_print;
unsigned long long mlock_size = 0;
FILE *f_out = NULL;
FILE *f_err = NULL;
unsigned long long mlock_size = 0;
FILE *f_out = NULL;
FILE *f_err = NULL;
-char *job_section = NULL;
+char **job_sections = NULL;
+int nr_job_sections = 0;
char *exec_profile = NULL;
int warnings_fatal = 0;
char *exec_profile = NULL;
int warnings_fatal = 0;
@@
-248,7
+249,7
@@
static int fixed_block_size(struct thread_options *o)
static int fixup_options(struct thread_data *td)
{
struct thread_options *o = &td->o;
static int fixup_options(struct thread_data *td)
{
struct thread_options *o = &td->o;
- int ret;
+ int ret
= 0
;
#ifndef FIO_HAVE_PSHARED_MUTEX
if (!o->use_thread) {
#ifndef FIO_HAVE_PSHARED_MUTEX
if (!o->use_thread) {
@@
-375,13
+376,7
@@
static int fixup_options(struct thread_data *td)
o->size = -1ULL;
if (o->verify != VERIFY_NONE) {
o->size = -1ULL;
if (o->verify != VERIFY_NONE) {
- if (td_rw(td)) {
- log_info("fio: mixed read/write workload with verify. "
- "May not work as expected, unless you "
- "pre-populated the file\n");
- ret = warnings_fatal;
- }
- if (td_write(td) && o->numjobs > 1) {
+ if (td_write(td) && o->do_verify && o->numjobs > 1) {
log_info("Multiple writers may overwrite blocks that "
"belong to other jobs. This can cause "
"verification failures.\n");
log_info("Multiple writers may overwrite blocks that "
"belong to other jobs. This can cause "
"verification failures.\n");
@@
-724,12
+719,18
@@
void add_job_opts(const char **o)
static int skip_this_section(const char *name)
{
static int skip_this_section(const char *name)
{
- if (!job_section)
+ int i;
+
+ if (!nr_job_sections)
return 0;
if (!strncmp(name, "global", 6))
return 0;
return 0;
if (!strncmp(name, "global", 6))
return 0;
- return strcmp(job_section, name);
+ for (i = 0; i < nr_job_sections; i++)
+ if (!strcmp(job_sections[i], name))
+ return 0;
+
+ return 1;
}
static int is_empty_or_comment(char *line)
}
static int is_empty_or_comment(char *line)
@@
-1039,8
+1040,6
@@
static int set_debug(const char *string)
int i;
if (!strcmp(string, "?") || !strcmp(string, "help")) {
int i;
if (!strcmp(string, "?") || !strcmp(string, "help")) {
- int i;
-
log_info("fio: dumping debug options:");
for (i = 0; debug_levels[i].name; i++) {
dl = &debug_levels[i];
log_info("fio: dumping debug options:");
for (i = 0; debug_levels[i].name; i++) {
dl = &debug_levels[i];
@@
-1157,7
+1156,7
@@
static int parse_cmd_line(int argc, char *argv[])
read_only = 1;
break;
case 'v':
read_only = 1;
break;
case 'v':
- /* already being printed, just quit */
+ log_info("%s\n", fio_version_string);
exit(0);
case 'e':
if (!strcmp("always", optarg))
exit(0);
case 'e':
if (!strcmp("always", optarg))
@@
-1169,7
+1168,9
@@
static int parse_cmd_line(int argc, char *argv[])
if (set_debug(optarg))
do_exit++;
break;
if (set_debug(optarg))
do_exit++;
break;
- case 'x':
+ case 'x': {
+ size_t new_size;
+
if (!strcmp(optarg, "global")) {
log_err("fio: can't use global as only "
"section\n");
if (!strcmp(optarg, "global")) {
log_err("fio: can't use global as only "
"section\n");
@@
-1177,10
+1178,12
@@
static int parse_cmd_line(int argc, char *argv[])
exit_val = 1;
break;
}
exit_val = 1;
break;
}
- if (job_section)
- free(job_section);
- job_section = strdup(optarg);
+ new_size = (nr_job_sections + 1) * sizeof(char *);
+ job_sections = realloc(job_sections, new_size);
+ job_sections[nr_job_sections] = strdup(optarg);
+ nr_job_sections++;
break;
break;
+ }
case 'p':
exec_profile = strdup(optarg);
break;
case 'p':
exec_profile = strdup(optarg);
break;
@@
-1251,8
+1254,6
@@
int parse_options(int argc, char *argv[])
f_out = stdout;
f_err = stderr;
f_out = stdout;
f_err = stderr;
- log_info("%s\n", fio_version_string);
-
fio_options_fill_optstring();
fio_options_dup_and_init(l_opts);
fio_options_fill_optstring();
fio_options_dup_and_init(l_opts);
@@
-1291,5
+1292,6
@@
int parse_options(int argc, char *argv[])
fio_gtod_cpu = def_thread.o.gtod_cpu;
}
fio_gtod_cpu = def_thread.o.gtod_cpu;
}
+ log_info("%s\n", fio_version_string);
return 0;
}
return 0;
}