X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=options.c;h=3fa646c0f364c97c3671cb676e8f5ec830ac3a89;hb=2226ce346557b79b85de46e5bb47b9102f709180;hp=d979f804d76c7f694e746956af3fd48e55cb2ac4;hpb=59466396a8f7d37ca7884aaacf591cb9a894a336;p=fio.git diff --git a/options.c b/options.c index d979f804..3fa646c0 100644 --- a/options.c +++ b/options.c @@ -54,16 +54,15 @@ static int bs_cmp(const void *p1, const void *p2) return (int) bsp1->perc - (int) bsp2->perc; } -#define SPLIT_MAX_ENTRY 100 - struct split { unsigned int nr; - unsigned int val1[SPLIT_MAX_ENTRY]; - unsigned long long val2[SPLIT_MAX_ENTRY]; + unsigned int val1[ZONESPLIT_MAX]; + unsigned long long val2[ZONESPLIT_MAX]; }; static int split_parse_ddir(struct thread_options *o, struct split *split, - enum fio_ddir ddir, char *str, bool absolute) + enum fio_ddir ddir, char *str, bool absolute, + unsigned int max_splits) { unsigned long long perc; unsigned int i; @@ -111,8 +110,10 @@ static int split_parse_ddir(struct thread_options *o, struct split *split, split->val1[i] = val; split->val2[i] = perc; i++; - if (i == SPLIT_MAX_ENTRY) + if (i == max_splits) { + log_err("fio: hit max of %d split entries\n", i); break; + } } split->nr = i; @@ -128,7 +129,7 @@ static int bssplit_ddir(struct thread_options *o, enum fio_ddir ddir, char *str, memset(&split, 0, sizeof(split)); - if (split_parse_ddir(o, &split, ddir, str, data)) + if (split_parse_ddir(o, &split, ddir, str, data, BSSPLIT_MAX)) return 1; if (!split.nr) return 0; @@ -848,7 +849,7 @@ static int zone_split_ddir(struct thread_options *o, enum fio_ddir ddir, memset(&split, 0, sizeof(split)); - if (split_parse_ddir(o, &split, ddir, str, absolute)) + if (split_parse_ddir(o, &split, ddir, str, absolute, ZONESPLIT_MAX)) return 1; if (!split.nr) return 0; @@ -1129,9 +1130,9 @@ static int str_steadystate_cb(void *data, const char *str) if (parse_dryrun()) return 0; - td->o.ss_state |= __FIO_SS_PCT; + td->o.ss_state |= FIO_SS_PCT; td->o.ss_limit.u.f = val; - } else if (td->o.ss_state & __FIO_SS_IOPS) { + } else if (td->o.ss_state & FIO_SS_IOPS) { if (!str_to_float(nr, &val, 0)) { log_err("fio: steadystate IOPS threshold postfix parsing failed\n"); free(nr); @@ -3460,8 +3461,8 @@ struct fio_option fio_options[FIO_MAX_OPTS] = { }, { .name = "max_latency", - .lname = "Max Latency", - .type = FIO_OPT_INT, + .lname = "Max Latency (usec)", + .type = FIO_OPT_STR_VAL_TIME, .off1 = offsetof(struct thread_options, max_latency), .help = "Maximum tolerated IO latency (usec)", .is_time = 1,