X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=init.c;h=4e7eb4989976ad86c32910e7b2144d260cfc497f;hb=9918be5a9bfe2819cccdb9f975f2b9d4d36f3f70;hp=37e0c4811d14063f0e46884ce0999864a6748109;hpb=08d2a19c76b310f68ad2ecab17dff2a2a4c1adf8;p=fio.git diff --git a/init.c b/init.c index 37e0c481..4e7eb498 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.55"; #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; @@ -143,6 +143,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, }, @@ -568,7 +573,7 @@ static int add_job(struct thread_data *td, const char *jobname, int job_add_num) } if (profile_td_init(td)) - return 1; + goto err; engine = get_engine_name(td->o.ioengine); td->io_ops = load_ioengine(td, engine); @@ -771,7 +776,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; } @@ -1039,6 +1044,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"); } @@ -1222,10 +1228,8 @@ static int parse_cmd_line(int argc, char *argv[]) if (!strncmp(opt, "name", 4) && td) { ret = add_job(td, td->o.name ?: "fio", 0); - if (ret) { - put_job(td); + if (ret) return 0; - } td = NULL; } if (!td) { @@ -1249,6 +1253,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; @@ -1262,8 +1274,6 @@ static int parse_cmd_line(int argc, char *argv[]) if (td) { if (!ret) ret = add_job(td, td->o.name ?: "fio", 0); - if (ret) - put_job(td); } while (optind < argc) {