X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=options.c;h=3b04ffae8c129a6828add9cd75a28a22f451b96c;hb=59358c8ef39efea4a2ab141d85b2deebf5cf34fd;hp=63293e0da505050663618b4d7585d278af3f52e2;hpb=90b7a96d9573a14f20470af2aa0dd4e60611a477;p=fio.git diff --git a/options.c b/options.c index 63293e0d..3b04ffae 100644 --- a/options.c +++ b/options.c @@ -868,20 +868,6 @@ static int str_verify_pattern_cb(void *data, const char *input) return 0; } -static int str_lockfile_cb(void *data, const char *str) -{ - struct thread_data *td = data; - char *nr = get_opt_postfix(str); - - td->o.lockfile_batch = 1; - if (nr) { - td->o.lockfile_batch = atoi(nr); - free(nr); - } - - return 0; -} - static int str_gtod_reduce_cb(void *data, int *il) { struct thread_data *td = data; @@ -950,19 +936,6 @@ static int gtod_cpu_verify(struct fio_option *o, void *data) return 0; } -static int kb_base_verify(struct fio_option *o, void *data) -{ - struct thread_data *td = data; - - if (td->o.kb_base != 1024 && td->o.kb_base != 1000) { - log_err("fio: kb_base set to nonsensical value: %u\n", - td->o.kb_base); - return 1; - } - - return 0; -} - /* * Option grouping */ @@ -1161,11 +1134,20 @@ struct fio_option fio_options[FIO_MAX_OPTS] = { .category = FIO_OPT_C_FILE, .group = FIO_OPT_G_FILENAME, }, + { + .name = "filename_format", + .type = FIO_OPT_STR_STORE, + .off1 = td_var_offset(filename_format), + .prio = -1, /* must come after "directory" */ + .help = "Override default $jobname.$jobnum.$filenum naming", + .def = "$jobname.$jobnum.$filenum", + .category = FIO_OPT_C_FILE, + .group = FIO_OPT_G_FILENAME, + }, { .name = "lockfile", .lname = "Lockfile", .type = FIO_OPT_STR, - .cb = str_lockfile_cb, .off1 = td_var_offset(file_lock_mode), .help = "Lock file when doing IO to it", .parent = "filename", @@ -2358,7 +2340,7 @@ struct fio_option fio_options[FIO_MAX_OPTS] = { .lname = "Lock memory", .type = FIO_OPT_STR_VAL, .off1 = td_var_offset(lockmem), - .help = "Lock down this amount of memory", + .help = "Lock down this amount of memory (per worker)", .def = "0", .interval = 1024 * 1024, .category = FIO_OPT_C_GENERAL, @@ -2635,12 +2617,16 @@ struct fio_option fio_options[FIO_MAX_OPTS] = { .type = FIO_OPT_STR, .cb = str_numa_cpunodes_cb, .help = "NUMA CPU nodes bind", + .category = FIO_OPT_C_GENERAL, + .group = FIO_OPT_G_INVALID, }, { .name = "numa_mem_policy", .type = FIO_OPT_STR, .cb = str_numa_mpol_cb, .help = "NUMA memory policy setup", + .category = FIO_OPT_C_GENERAL, + .group = FIO_OPT_G_INVALID, }, #endif { @@ -2780,7 +2766,6 @@ struct fio_option fio_options[FIO_MAX_OPTS] = { .type = FIO_OPT_BOOL, .off1 = td_var_offset(group_reporting), .help = "Do reporting on a per-group basis", - .def = "1", .category = FIO_OPT_C_STAT, .group = FIO_OPT_G_INVALID, }, @@ -2851,6 +2836,7 @@ struct fio_option fio_options[FIO_MAX_OPTS] = { .lname = "Completion latency percentile list", .type = FIO_OPT_FLOAT_LIST, .off1 = td_var_offset(percentile_list), + .off2 = td_var_offset(percentile_precision), .help = "Specify a custom list of percentiles to report", .def = "1:5:10:20:30:40:50:60:70:80:90:95:99:99.5:99.9:99.95:99.99", .maxlen = FIO_IO_U_LIST_MAX_LEN, @@ -3076,13 +3062,46 @@ struct fio_option fio_options[FIO_MAX_OPTS] = { .lname = "KB Base", .type = FIO_OPT_INT, .off1 = td_var_offset(kb_base), - .verify = kb_base_verify, .prio = 1, .def = "1024", + .posval = { + { .ival = "1024", + .oval = 1024, + .help = "Use 1024 as the K base", + }, + { .ival = "1000", + .oval = 1000, + .help = "Use 1000 as the K base", + }, + }, .help = "How many bytes per KB for reporting (1000 or 1024)", .category = FIO_OPT_C_GENERAL, .group = FIO_OPT_G_INVALID, }, + { + .name = "unit_base", + .lname = "Base unit for reporting (Bits or Bytes)", + .type = FIO_OPT_INT, + .off1 = td_var_offset(unit_base), + .prio = 1, + .posval = { + { .ival = "0", + .oval = 0, + .help = "Auto-detect", + }, + { .ival = "8", + .oval = 8, + .help = "Normal (byte based)", + }, + { .ival = "1", + .oval = 1, + .help = "Bit based", + }, + }, + .help = "Bit multiple of result summary data (8 for byte, 1 for bit)", + .category = FIO_OPT_C_GENERAL, + .group = FIO_OPT_G_INVALID, + }, { .name = "hugepage-size", .lname = "Hugepage size",