fio: provide an option for a startdelay range

This patch allows the specification of start delay as range.  With a
range each thread will chose an individual startdelay out of the range.

That solves an issue of startdelay being the same for each numjob clone
and that way spreads all kind of activities e.g. that all clones with
mixed r/w jobs switch r/w at the same time.  Also all kind of other
"thundering herd" issues can be softened by some time spread due to this
option.

Signed-off-by: Christian Ehrhardt <ehrhardt@linux.vnet.ibm.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
diff --git a/fio.h b/fio.h
index cda4668..75ed804 100644
--- a/fio.h
+++ b/fio.h
@@ -85,6 +85,7 @@
 	FIO_RAND_SEQ_RAND_READ_OFF,
 	FIO_RAND_SEQ_RAND_WRITE_OFF,
 	FIO_RAND_SEQ_RAND_TRIM_OFF,
+	FIO_RAND_START_DELAY,
 	FIO_RAND_NR_OFFS,
 };
 
@@ -164,6 +165,10 @@
 		os_random_state_t trim_state;
 		struct frand_state __trim_state;
 	};
+	union {
+		os_random_state_t delay_state;
+		struct frand_state __delay_state;
+	};
 
 	struct frand_state buf_state;