X-Git-Url: https://git.kernel.dk/?p=fio.git;a=blobdiff_plain;f=init.c;h=a920c6ed87e71e8b0399708fcb12ac0d6361c88a;hp=26e42ef64fd018c1219f8112929fbd7f91f8a942;hb=716050f2a0b858835d7836ad74e8b680973e08e8;hpb=6625155407de739e1e857419b7b4fb62f6c6bb2e diff --git a/init.c b/init.c index 26e42ef6..a920c6ed 100644 --- a/init.c +++ b/init.c @@ -22,12 +22,12 @@ #include "lib/getopt.h" -static char fio_version_string[] = "fio 1.53"; +static char fio_version_string[] = "fio 1.57"; #define FIO_RANDSEED (0xb1899bedUL) static char **ini_file; -static int max_jobs = MAX_JOBS; +static int max_jobs = FIO_MAX_JOBS; static int dump_cmdline; static struct thread_data def_thread; @@ -47,7 +47,6 @@ int warnings_fatal = 0; int write_bw_log = 0; int read_only = 0; -static int def_timeout; static int write_lat_log; static int prev_group_jobs; @@ -143,6 +142,11 @@ static struct option l_opts[FIO_NR_OPTIONS] = { .has_arg = no_argument, .val = 'w', }, + { + .name = (char *) "max-jobs", + .has_arg = required_argument, + .val = 'j', + }, { .name = NULL, }, @@ -612,6 +616,12 @@ static int add_job(struct thread_data *td, const char *jobname, int job_add_num) td->mutex = fio_mutex_init(0); + td->ts.clat_percentiles = td->o.clat_percentiles; + if (td->o.overwrite_plist) + td->ts.percentile_list = td->o.percentile_list; + else + td->ts.percentile_list = NULL; + 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.lat_stat[0].min_val = td->ts.lat_stat[1].min_val = ULONG_MAX; @@ -771,7 +781,7 @@ static int is_empty_or_comment(char *line) return 1; if (line[i] == '#') return 1; - if (!isspace(line[i]) && !iscntrl(line[i])) + if (!isspace((int) line[i]) && !iscntrl((int) line[i])) return 0; } @@ -946,8 +956,6 @@ static int fill_def_thread(void) * fill default options */ fio_fill_default_options(&def_thread); - - def_thread.o.timeout = def_timeout; return 0; } @@ -1019,6 +1027,7 @@ static int setup_thread_area(void) static void usage(const char *name) { + printf("%s\n", fio_version_string); printf("%s [options] [job options] \n", name); printf("\t--debug=options\tEnable debug logging\n"); printf("\t--output\tWrite output to file\n"); @@ -1039,6 +1048,7 @@ static void usage(const char *name) printf("\t--alloc-size=kb\tSet smalloc pool to this size in kb" " (def 1024)\n"); printf("\t--warnings-fatal Fio parser warnings are fatal\n"); + printf("\t--max-jobs\tMaximum number of threads/processes to support\n"); printf("\nFio was written by Jens Axboe "); printf("\n Jens Axboe \n"); } @@ -1154,7 +1164,7 @@ static int parse_cmd_line(int argc, char *argv[]) smalloc_pool_size = atoi(optarg); break; case 't': - def_timeout = atoi(optarg); + def_thread.o.timeout = atoi(optarg); break; case 'l': write_lat_log = 1; @@ -1247,6 +1257,14 @@ static int parse_cmd_line(int argc, char *argv[]) case 'w': warnings_fatal = 1; break; + case 'j': + max_jobs = atoi(optarg); + if (!max_jobs || max_jobs > REAL_MAX_JOBS) { + log_err("fio: invalid max jobs: %d\n", max_jobs); + do_exit++; + exit_val = 1; + } + break; default: do_exit++; exit_val = 1;