static unsigned long long get_rand_start_delay(struct thread_data *td)
{
unsigned long long delayrange;
- uint64_t frand_max;
- unsigned long r;
+ uint64_t r, frand_max;
delayrange = td->o.start_delay_high - td->o.start_delay;
r = __rand(&td->delay_state);
delayrange = (unsigned long long) ((double) delayrange * (r / (frand_max + 1.0)));
- delayrange += td->o.start_delay;
+ delayrange += td->o.start_delay_orig;
return delayrange;
}
if (!o->file_size_high)
o->file_size_high = o->file_size_low;
- if (o->start_delay_high)
+ if (o->start_delay_high) {
+ if (!o->start_delay_orig)
+ o->start_delay_orig = o->start_delay;
o->start_delay = get_rand_start_delay(td);
+ }
if (o->norandommap && o->verify != VERIFY_NONE
&& !fixed_block_size(o)) {
}
}
+ if (setup_random_seeds(td)) {
+ td_verror(td, errno, "setup_random_seeds");
+ goto err;
+ }
+
if (fixup_options(td))
goto err;
td->groupid = groupid;
prev_group_jobs++;
- if (setup_random_seeds(td)) {
- td_verror(td, errno, "setup_random_seeds");
- goto err;
- }
-
if (setup_rate(td))
goto err;
unsigned int fdatasync_blocks;
unsigned int barrier_blocks;
unsigned long long start_delay;
+ unsigned long long start_delay_orig;
unsigned long long start_delay_high;
unsigned long long timeout;
unsigned long long ramp_time;