From: Jens Axboe Date: Tue, 17 May 2016 14:16:12 +0000 (-0600) Subject: init: cleanup random inits X-Git-Tag: fio-2.10~21 X-Git-Url: https://git.kernel.dk/?p=fio.git;a=commitdiff_plain;h=99c94a6b08b7832ba063c0376fe73a60e8aa24df init: cleanup random inits Signed-off-by: Jens Axboe --- diff --git a/init.c b/init.c index e8c8afb6..7166ea76 100644 --- a/init.c +++ b/init.c @@ -919,6 +919,23 @@ static int exists_and_not_file(const char *filename) return 1; } +static void init_rand_file_service(struct thread_data *td) +{ + unsigned long nranges = td->o.nr_files << FIO_FSERVICE_SHIFT; + const unsigned int seed = td->rand_seeds[FIO_RAND_FILE_OFF]; + + if (td->o.file_service_type == FIO_FSERVICE_ZIPF) { + zipf_init(&td->next_file_zipf, nranges, td->zipf_theta, seed); + zipf_disable_hash(&td->next_file_zipf); + } else if (td->o.file_service_type == FIO_FSERVICE_PARETO) { + pareto_init(&td->next_file_zipf, nranges, td->pareto_h, seed); + zipf_disable_hash(&td->next_file_zipf); + } else if (td->o.file_service_type == FIO_FSERVICE_GAUSS) { + gauss_init(&td->next_file_gauss, nranges, td->gauss_dev, seed); + gauss_disable_hash(&td->next_file_gauss); + } +} + static void td_fill_rand_seeds_internal(struct thread_data *td, bool use64) { int i; @@ -929,22 +946,8 @@ static void td_fill_rand_seeds_internal(struct thread_data *td, bool use64) if (td->o.file_service_type == FIO_FSERVICE_RANDOM) init_rand_seed(&td->next_file_state, td->rand_seeds[FIO_RAND_FILE_OFF], use64); - else if (td->o.file_service_type & __FIO_FSERVICE_NONUNIFORM) { - unsigned long nranges; - - nranges = td->o.nr_files << FIO_FSERVICE_SHIFT; - - if (td->o.file_service_type == FIO_FSERVICE_ZIPF) { - zipf_init(&td->next_file_zipf, nranges, td->zipf_theta, td->rand_seeds[FIO_RAND_FILE_OFF]); - zipf_disable_hash(&td->next_file_zipf); - } else if (td->o.file_service_type == FIO_FSERVICE_PARETO) { - pareto_init(&td->next_file_zipf, nranges, td->pareto_h, td->rand_seeds[FIO_RAND_FILE_OFF]); - zipf_disable_hash(&td->next_file_zipf); - } else if (td->o.file_service_type == FIO_FSERVICE_GAUSS) { - gauss_init(&td->next_file_gauss, nranges, td->gauss_dev, td->rand_seeds[FIO_RAND_FILE_OFF]); - gauss_disable_hash(&td->next_file_gauss); - } - } + else if (td->o.file_service_type & __FIO_FSERVICE_NONUNIFORM) + init_rand_file_service(td); init_rand_seed(&td->file_size_state, td->rand_seeds[FIO_RAND_FILE_SIZE_OFF], use64); init_rand_seed(&td->trim_state, td->rand_seeds[FIO_RAND_TRIM_OFF], use64); diff --git a/options.c b/options.c index a9256632..07589c47 100644 --- a/options.c +++ b/options.c @@ -788,7 +788,7 @@ static int str_fst_cb(void *data, const char *str) break; case FIO_FSERVICE_GAUSS: if (val < 0.00 || val >= 100.00) { - log_err("fio: normal deviation out of range (0 < input < 100.0 )\n"); + log_err("fio: normal deviation out of range (0 <= input < 100.0)\n"); return 1; } if (parse_dryrun()) @@ -1048,7 +1048,7 @@ static int str_random_distribution_cb(void *data, const char *str) td->o.pareto_h.u.f = val; } else { if (val < 0.00 || val >= 100.0) { - log_err("fio: normal deviation out of range (0 < input < 100.0)\n"); + log_err("fio: normal deviation out of range (0 <= input < 100.0)\n"); return 1; } if (parse_dryrun())