projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Fio 1.15.1
[fio.git]
/
init.c
diff --git
a/init.c
b/init.c
index 911ee32f995d4c6fd6562a2cde3194eaa1beca8c..50c476012d374014b843eff27560f629ae6c9f97 100644
(file)
--- a/
init.c
+++ b/
init.c
@@
-17,7
+17,7
@@
#include "fio.h"
#include "parse.h"
#include "fio.h"
#include "parse.h"
-static char fio_version_string[] = "fio 1.1
4a
";
+static char fio_version_string[] = "fio 1.1
5.1
";
#define FIO_RANDSEED (0xb1899bedUL)
#define FIO_RANDSEED (0xb1899bedUL)
@@
-115,6
+115,9
@@
static struct thread_data *get_new_job(int global, struct thread_data *parent)
td = &threads[thread_number++];
*td = *parent;
td = &threads[thread_number++];
*td = *parent;
+ dup_files(td, parent);
+ options_mem_dupe(td);
+
td->thread_number = thread_number;
return td;
}
td->thread_number = thread_number;
return td;
}
@@
-358,7
+361,6
@@
static int init_random_state(struct thread_data *td)
return 0;
}
return 0;
}
-
/*
* Adds a job to the list of things todo. Sanitizes the various options
* to make sure we don't have conflicts, and initializes various
/*
* Adds a job to the list of things todo. Sanitizes the various options
* to make sure we don't have conflicts, and initializes various
@@
-369,7
+371,6
@@
static int add_job(struct thread_data *td, const char *jobname, int job_add_num)
const char *ddir_str[] = { NULL, "read", "write", "rw", NULL,
"randread", "randwrite", "randrw" };
unsigned int i;
const char *ddir_str[] = { NULL, "read", "write", "rw", NULL,
"randread", "randwrite", "randrw" };
unsigned int i;
- struct fio_file *f;
const char *engine;
char fname[PATH_MAX];
int numjobs, file_alloced;
const char *engine;
char fname[PATH_MAX];
int numjobs, file_alloced;
@@
-412,18
+413,12
@@
static int add_job(struct thread_data *td, const char *jobname, int job_add_num)
if (fixup_options(td))
goto err;
if (fixup_options(td))
goto err;
- for_each_file(td, f, i) {
- if (td->o.directory && f->filetype == FIO_TYPE_FILE) {
- sprintf(fname, "%s/%s", td->o.directory, f->file_name);
- f->file_name = strdup(fname);
- }
- }
-
td->mutex = fio_sem_init(0);
td->ts.clat_stat[0].min_val = td->ts.clat_stat[1].min_val = ULONG_MAX;
td->ts.slat_stat[0].min_val = td->ts.slat_stat[1].min_val = ULONG_MAX;
td->ts.bw_stat[0].min_val = td->ts.bw_stat[1].min_val = ULONG_MAX;
td->mutex = fio_sem_init(0);
td->ts.clat_stat[0].min_val = td->ts.clat_stat[1].min_val = ULONG_MAX;
td->ts.slat_stat[0].min_val = td->ts.slat_stat[1].min_val = ULONG_MAX;
td->ts.bw_stat[0].min_val = td->ts.bw_stat[1].min_val = ULONG_MAX;
+ td->ddir_nr = td->o.ddir_nr;
if ((td->o.stonewall || td->o.numjobs > 1 || td->o.new_group)
&& prev_group_jobs) {
if ((td->o.stonewall || td->o.numjobs > 1 || td->o.new_group)
&& prev_group_jobs) {
@@
-486,6
+481,7
@@
static int add_job(struct thread_data *td, const char *jobname, int job_add_num)
td_new->o.numjobs = 1;
td_new->o.stonewall = 0;
td_new->o.numjobs = 1;
td_new->o.stonewall = 0;
+ td_new->o.new_group = 0;
if (file_alloced) {
td_new->o.filename = NULL;
if (file_alloced) {
td_new->o.filename = NULL;
@@
-549,10
+545,16
@@
static int parse_jobs_ini(char *file, int stonewall_flag)
p = fgets(string, 4095, f);
if (!p)
break;
p = fgets(string, 4095, f);
if (!p)
break;
+
+ strip_blank_front(&p);
+ strip_blank_end(p);
+
if (is_empty_or_comment(p))
continue;
if (is_empty_or_comment(p))
continue;
- if (sscanf(p, "[%255s]", name) != 1)
+ if (sscanf(p, "[%255s]", name) != 1) {
+ log_err("fio: option <%s> outside of job section\n", p);
continue;
continue;
+ }
global = !strncmp(name, "global", 6);
global = !strncmp(name, "global", 6);
@@
-807,6
+809,7
@@
int parse_options(int argc, char *argv[])
}
free(ini_file);
}
free(ini_file);
+ options_mem_free(&def_thread);
if (!thread_number) {
log_err("No jobs defined(s)\n");
if (!thread_number) {
log_err("No jobs defined(s)\n");