projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Dump actual filename in failure to open
[fio.git]
/
options.c
diff --git
a/options.c
b/options.c
index f502247d1eb6323b27a3960ec9e20b01ffa2c9ae..0642a625e2113ae58c0fd9e301d0251d779c0dc5 100644
(file)
--- a/
options.c
+++ b/
options.c
@@
-9,7
+9,7
@@
#include "fio.h"
#include "parse.h"
#include "fio.h"
#include "parse.h"
-#define td_var_offset(var) ((size_t) &((struct thread_
data
*)0)->var)
+#define td_var_offset(var) ((size_t) &((struct thread_
options
*)0)->var)
/*
* Check if mmap/mmaphuge has a :/foo/bar/file at the end. If so, return that.
/*
* Check if mmap/mmaphuge has a :/foo/bar/file at the end. If so, return that.
@@
-31,9
+31,9
@@
static int str_mem_cb(void *data, const char *mem)
{
struct thread_data *td = data;
{
struct thread_data *td = data;
- if (td->
mem_type == MEM_MMAPHUGE || td->
mem_type == MEM_MMAP) {
+ if (td->
o.mem_type == MEM_MMAPHUGE || td->o.
mem_type == MEM_MMAP) {
td->mmapfile = get_opt_postfix(mem);
td->mmapfile = get_opt_postfix(mem);
- if (td->mem_type == MEM_MMAPHUGE && !td->mmapfile) {
+ if (td->
o.
mem_type == MEM_MMAPHUGE && !td->mmapfile) {
log_err("fio: mmaphuge:/path/to/file\n");
return 1;
}
log_err("fio: mmaphuge:/path/to/file\n");
return 1;
}
@@
-90,7
+90,7
@@
static int str_cpumask_cb(void *data, unsigned int *val)
{
struct thread_data *td = data;
{
struct thread_data *td = data;
- fill_cpu_mask(td->cpumask, *val);
+ fill_cpu_mask(td->
o.
cpumask, *val);
return 0;
}
return 0;
}
@@
-117,13
+117,13
@@
static int str_filename_cb(void *data, const char *input)
strip_blank_end(str);
if (!td->files_index)
strip_blank_end(str);
if (!td->files_index)
- td->nr_files = 0;
+ td->
o.
nr_files = 0;
while ((fname = strsep(&str, ":")) != NULL) {
if (!strlen(fname))
break;
add_file(td, fname);
while ((fname = strsep(&str, ":")) != NULL) {
if (!strlen(fname))
break;
add_file(td, fname);
- td->nr_files++;
+ td->
o.
nr_files++;
}
free(p);
}
free(p);
@@
-135,13
+135,13
@@
static int str_directory_cb(void *data, const char fio_unused *str)
struct thread_data *td = data;
struct stat sb;
struct thread_data *td = data;
struct stat sb;
- if (lstat(td->directory, &sb) < 0) {
- log_err("fio: %s is not a directory\n", td->directory);
+ if (lstat(td->
o.
directory, &sb) < 0) {
+ log_err("fio: %s is not a directory\n", td->
o.
directory);
td_verror(td, errno, "lstat");
return 1;
}
if (!S_ISDIR(sb.st_mode)) {
td_verror(td, errno, "lstat");
return 1;
}
if (!S_ISDIR(sb.st_mode)) {
- log_err("fio: %s is not a directory\n", td->directory);
+ log_err("fio: %s is not a directory\n", td->
o.
directory);
return 1;
}
return 1;
}
@@
-153,9
+153,9
@@
static int str_opendir_cb(void *data, const char fio_unused *str)
struct thread_data *td = data;
if (!td->files_index)
struct thread_data *td = data;
if (!td->files_index)
- td->nr_files = 0;
+ td->
o.
nr_files = 0;
- return add_dir_files(td, td->opendir);
+ return add_dir_files(td, td->o
.o
pendir);
}
}
@@
-201,6
+201,7
@@
static struct fio_option options[] = {
},
{
.name = "rw",
},
{
.name = "rw",
+ .alias = "readwrite",
.type = FIO_OPT_STR,
.off1 = td_var_offset(td_ddir),
.help = "IO direction",
.type = FIO_OPT_STR,
.off1 = td_var_offset(td_ddir),
.help = "IO direction",
@@
-279,6
+280,11
@@
static struct fio_option options[] = {
{ .ival = "cpuio",
.help = "CPU cycler burner engine",
},
{ .ival = "cpuio",
.help = "CPU cycler burner engine",
},
+#ifdef FIO_HAVE_GUASI
+ { .ival = "guasi",
+ .help = "GUASI IO engine",
+ },
+#endif
{ .ival = "external",
.help = "Load external engine (append name)",
},
{ .ival = "external",
.help = "Load external engine (append name)",
},
@@
-306,7
+312,7
@@
static struct fio_option options[] = {
{
.name = "size",
.type = FIO_OPT_STR_VAL,
{
.name = "size",
.type = FIO_OPT_STR_VAL,
- .off1 = td_var_offset(
total_file_
size),
+ .off1 = td_var_offset(size),
.help = "Total size of device or files",
},
{
.help = "Total size of device or files",
},
{
@@
-318,6
+324,7
@@
static struct fio_option options[] = {
},
{
.name = "bs",
},
{
.name = "bs",
+ .alias = "blocksize",
.type = FIO_OPT_STR_VAL_INT,
.off1 = td_var_offset(bs[DDIR_READ]),
.off2 = td_var_offset(bs[DDIR_WRITE]),
.type = FIO_OPT_STR_VAL_INT,
.off1 = td_var_offset(bs[DDIR_READ]),
.off2 = td_var_offset(bs[DDIR_WRITE]),
@@
-326,6
+333,7
@@
static struct fio_option options[] = {
},
{
.name = "bsrange",
},
{
.name = "bsrange",
+ .alias = "blocksize_range",
.type = FIO_OPT_RANGE,
.off1 = td_var_offset(min_bs[DDIR_READ]),
.off2 = td_var_offset(max_bs[DDIR_READ]),
.type = FIO_OPT_RANGE,
.off1 = td_var_offset(min_bs[DDIR_READ]),
.off2 = td_var_offset(max_bs[DDIR_READ]),
@@
-335,6
+343,7
@@
static struct fio_option options[] = {
},
{
.name = "bs_unaligned",
},
{
.name = "bs_unaligned",
+ .alias = "blocksize_unaligned",
.type = FIO_OPT_STR_SET,
.off1 = td_var_offset(bs_unaligned),
.help = "Don't sector align IO buffer sizes",
.type = FIO_OPT_STR_SET,
.off1 = td_var_offset(bs_unaligned),
.help = "Don't sector align IO buffer sizes",
@@
-450,6
+459,7
@@
static struct fio_option options[] = {
},
{
.name = "mem",
},
{
.name = "mem",
+ .alias = "iomem",
.type = FIO_OPT_STR,
.cb = str_mem_cb,
.off1 = td_var_offset(mem_type),
.type = FIO_OPT_STR,
.cb = str_mem_cb,
.off1 = td_var_offset(mem_type),
@@
-747,6
+757,12
@@
static struct fio_option options[] = {
.off1 = td_var_offset(stonewall),
.help = "Insert a hard barrier between this job and previous",
},
.off1 = td_var_offset(stonewall),
.help = "Insert a hard barrier between this job and previous",
},
+ {
+ .name = "new_group",
+ .type = FIO_OPT_STR_SET,
+ .off1 = td_var_offset(new_group),
+ .help = "Mark the start of a new group (for reporting)",
+ },
{
.name = "thread",
.type = FIO_OPT_STR_SET,
{
.name = "thread",
.type = FIO_OPT_STR_SET,