o->min_bs[DDIR_READ] == o->min_bs[DDIR_TRIM];
}
+static void init_rand_distribution(struct thread_data *td)
+{
+ unsigned int range_size;
+ unsigned long nranges;
+
+ if (td->o.random_distribution == FIO_RAND_DIST_RANDOM)
+ return;
+
+ range_size = min(td->o.min_bs[DDIR_READ], td->o.min_bs[DDIR_WRITE]);
+
+ nranges = (td->o.size + range_size - 1) / range_size;
+
+ if (td->o.random_distribution == FIO_RAND_DIST_ZIPF)
+ zipf_init(&td->zipf, nranges, td->o.zipf_theta);
+ else
+ pareto_init(&td->zipf, nranges, td->o.pareto_h);
+}
+
/*
* Lazy way of fixing up options that depend on each other. We could also
* define option callback handlers, but this is easier.
td->o.compress_percentage = 0;
}
+ init_rand_distribution(td);
+
return ret;
}
break;
case 'V':
terse_version = atoi(optarg);
- if (!(terse_version == 2 || terse_version == 3) ||
- (terse_version == 4)) {
+ if (!(terse_version == 2 || terse_version == 3 ||
+ terse_version == 4)) {
log_err("fio: bad terse version format\n");
exit_val = 1;
do_exit++;