projects
/
fio.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
server: cleanup iolog pdu prep
[fio.git]
/
init.c
diff --git
a/init.c
b/init.c
index b732bc982b45bcabf6e37d661f68e492e71fd9e4..b77b299ef8e310ad91c5e42aecc0a71975dfdd9b 100644
(file)
--- a/
init.c
+++ b/
init.c
@@
-32,6
+32,7
@@
#include "crc/test.h"
#include "lib/pow2.h"
#include "crc/test.h"
#include "lib/pow2.h"
+#include "lib/memcpy.h"
const char fio_version_string[] = FIO_VERSION;
const char fio_version_string[] = FIO_VERSION;
@@
-78,7
+79,7
@@
unsigned int fio_debug_jobno = -1;
unsigned int *fio_debug_jobp = NULL;
static char cmd_optstr[256];
unsigned int *fio_debug_jobp = NULL;
static char cmd_optstr[256];
-static
int
did_arg;
+static
bool
did_arg;
#define FIO_CLIENT_FLAG (1 << 16)
#define FIO_CLIENT_FLAG (1 << 16)
@@
-233,6
+234,11
@@
static struct option l_opts[FIO_NR_OPTIONS] = {
.has_arg = optional_argument,
.val = 'G',
},
.has_arg = optional_argument,
.val = 'G',
},
+ {
+ .name = (char *) "memcpytest",
+ .has_arg = optional_argument,
+ .val = 'M',
+ },
{
.name = (char *) "idle-prof",
.has_arg = required_argument,
{
.name = (char *) "idle-prof",
.has_arg = required_argument,
@@
-925,6
+931,13
@@
static int fixup_options(struct thread_data *td)
ret = 1;
}
ret = 1;
}
+ /*
+ * Fix these up to be nsec internally
+ */
+ o->max_latency *= 1000ULL;
+ o->latency_target *= 1000ULL;
+ o->latency_window *= 1000ULL;
+
return ret;
}
return ret;
}
@@
-1105,6
+1118,7
@@
int ioengine_load(struct thread_data *td)
static void init_flags(struct thread_data *td)
{
struct thread_options *o = &td->o;
static void init_flags(struct thread_data *td)
{
struct thread_options *o = &td->o;
+ int i;
if (o->verify_backlog)
td->flags |= TD_F_VER_BACKLOG;
if (o->verify_backlog)
td->flags |= TD_F_VER_BACKLOG;
@@
-1134,6
+1148,13
@@
static void init_flags(struct thread_data *td)
if (o->mem_type == MEM_CUDA_MALLOC)
td->flags &= ~TD_F_SCRAMBLE_BUFFERS;
if (o->mem_type == MEM_CUDA_MALLOC)
td->flags &= ~TD_F_SCRAMBLE_BUFFERS;
+
+ for (i = 0; i < DDIR_RWDIR_CNT; i++) {
+ if (option_check_rate(td, i)) {
+ td->flags |= TD_F_CHECK_RATE;
+ break;
+ }
+ }
}
static int setup_random_seeds(struct thread_data *td)
}
static int setup_random_seeds(struct thread_data *td)
@@
-2121,9
+2142,7
@@
static void usage(const char *name)
printf(" --trigger=cmd\t\tSet this command as local trigger\n");
printf(" --trigger-remote=cmd\tSet this command as remote trigger\n");
printf(" --aux-path=path\tUse this path for fio state generated files\n");
printf(" --trigger=cmd\t\tSet this command as local trigger\n");
printf(" --trigger-remote=cmd\tSet this command as remote trigger\n");
printf(" --aux-path=path\tUse this path for fio state generated files\n");
- printf("\nFio was written by Jens Axboe <jens.axboe@oracle.com>");
- printf("\n Jens Axboe <jaxboe@fusionio.com>");
- printf("\n Jens Axboe <axboe@fb.com>\n");
+ printf("\nFio was written by Jens Axboe <axboe@kernel.dk>\n");
}
#ifdef FIO_INC_DEBUG
}
#ifdef FIO_INC_DEBUG
@@
-2430,35
+2449,35
@@
int parse_cmd_line(int argc, char *argv[], int client_type)
output_format |= FIO_OUTPUT_TERSE;
break;
case 'h':
output_format |= FIO_OUTPUT_TERSE;
break;
case 'h':
- did_arg =
1
;
+ did_arg =
true
;
if (!cur_client) {
usage(argv[0]);
do_exit++;
}
break;
case 'c':
if (!cur_client) {
usage(argv[0]);
do_exit++;
}
break;
case 'c':
- did_arg =
1
;
+ did_arg =
true
;
if (!cur_client) {
fio_show_option_help(optarg);
do_exit++;
}
break;
case 'i':
if (!cur_client) {
fio_show_option_help(optarg);
do_exit++;
}
break;
case 'i':
- did_arg =
1
;
+ did_arg =
true
;
if (!cur_client) {
fio_show_ioengine_help(optarg);
do_exit++;
}
break;
case 's':
if (!cur_client) {
fio_show_ioengine_help(optarg);
do_exit++;
}
break;
case 's':
- did_arg =
1
;
+ did_arg =
true
;
dump_cmdline = 1;
break;
case 'r':
read_only = 1;
break;
case 'v':
dump_cmdline = 1;
break;
case 'r':
read_only = 1;
break;
case 'v':
- did_arg =
1
;
+ did_arg =
true
;
if (!cur_client) {
log_info("%s\n", fio_version_string);
do_exit++;
if (!cur_client) {
log_info("%s\n", fio_version_string);
do_exit++;
@@
-2494,7
+2513,7
@@
int parse_cmd_line(int argc, char *argv[], int client_type)
do_exit++;
break;
case 'P':
do_exit++;
break;
case 'P':
- did_arg =
1
;
+ did_arg =
true
;
parse_only = 1;
break;
case 'x': {
parse_only = 1;
break;
case 'x': {
@@
-2516,12
+2535,12
@@
int parse_cmd_line(int argc, char *argv[], int client_type)
#ifdef CONFIG_ZLIB
case 'X':
exit_val = iolog_file_inflate(optarg);
#ifdef CONFIG_ZLIB
case 'X':
exit_val = iolog_file_inflate(optarg);
- did_arg
++
;
+ did_arg
= true
;
do_exit++;
break;
#endif
case 'p':
do_exit++;
break;
#endif
case 'p':
- did_arg =
1
;
+ did_arg =
true
;
if (exec_profile)
free(exec_profile);
exec_profile = strdup(optarg);
if (exec_profile)
free(exec_profile);
exec_profile = strdup(optarg);
@@
-2535,7
+2554,7
@@
int parse_cmd_line(int argc, char *argv[], int client_type)
if (ret)
goto out_free;
td = NULL;
if (ret)
goto out_free;
td = NULL;
- did_arg =
1
;
+ did_arg =
true
;
}
if (!td) {
int is_section = !strncmp(opt, "name", 4);
}
if (!td) {
int is_section = !strncmp(opt, "name", 4);
@@
-2610,7
+2629,7
@@
int parse_cmd_line(int argc, char *argv[], int client_type)
}
break;
case 'S':
}
break;
case 'S':
- did_arg =
1
;
+ did_arg =
true
;
#ifndef CONFIG_NO_SHM
if (nr_clients) {
log_err("fio: can't be both client and server\n");
#ifndef CONFIG_NO_SHM
if (nr_clients) {
log_err("fio: can't be both client and server\n");
@@
-2636,14
+2655,14
@@
int parse_cmd_line(int argc, char *argv[], int client_type)
case 'I':
if ((ret = fio_idle_prof_parse_opt(optarg))) {
/* exit on error and calibration only */
case 'I':
if ((ret = fio_idle_prof_parse_opt(optarg))) {
/* exit on error and calibration only */
- did_arg =
1
;
+ did_arg =
true
;
do_exit++;
if (ret == -1)
exit_val = 1;
}
break;
case 'C':
do_exit++;
if (ret == -1)
exit_val = 1;
}
break;
case 'C':
- did_arg =
1
;
+ did_arg =
true
;
if (is_backend) {
log_err("fio: can't be both client and server\n");
do_exit++;
if (is_backend) {
log_err("fio: can't be both client and server\n");
do_exit++;
@@
-2700,22
+2719,27
@@
int parse_cmd_line(int argc, char *argv[], int client_type)
}
break;
case 'R':
}
break;
case 'R':
- did_arg =
1
;
+ did_arg =
true
;
if (fio_client_add_ini_file(cur_client, optarg, true)) {
do_exit++;
exit_val = 1;
}
break;
case 'T':
if (fio_client_add_ini_file(cur_client, optarg, true)) {
do_exit++;
exit_val = 1;
}
break;
case 'T':
- did_arg =
1
;
+ did_arg =
true
;
do_exit++;
exit_val = fio_monotonic_clocktest(1);
break;
case 'G':
do_exit++;
exit_val = fio_monotonic_clocktest(1);
break;
case 'G':
- did_arg =
1
;
+ did_arg =
true
;
do_exit++;
exit_val = fio_crctest(optarg);
break;
do_exit++;
exit_val = fio_crctest(optarg);
break;
+ case 'M':
+ did_arg = true;
+ do_exit++;
+ exit_val = fio_memcpy_test(optarg);
+ break;
case 'L': {
long long val;
case 'L': {
long long val;
@@
-2870,13
+2894,8
@@
int parse_options(int argc, char *argv[])
return 0;
log_err("No job(s) defined\n\n");
return 0;
log_err("No job(s) defined\n\n");
-
- if (!did_arg) {
- usage(argv[0]);
- return 1;
- }
-
- return 0;
+ usage(argv[0]);
+ return 1;
}
if (output_format & FIO_OUTPUT_NORMAL)
}
if (output_format & FIO_OUTPUT_NORMAL)