Recent changes (master)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



The following changes since commit ab5643cb04dac549b2202231d5c6e33339b7fe7d:

  stat: fix --bandwidth-log segfault (2018-06-08 08:31:20 -0600)

are available in the git repository at:

  git://git.kernel.dk/fio.git master

for you to fetch changes up to 49050b56681b17968256702a7a3ec0f545c7dad8:

  Fix start delay being the same across threads (2018-06-11 20:02:10 -0600)

----------------------------------------------------------------
Jens Axboe (1):
      Fix start delay being the same across threads

 init.c           | 20 +++++++++++---------
 thread_options.h |  1 +
 2 files changed, 12 insertions(+), 9 deletions(-)

---

Diff of recent changes:

diff --git a/init.c b/init.c
index 9257d47..e25e5e4 100644
--- a/init.c
+++ b/init.c
@@ -578,8 +578,7 @@ static int fixed_block_size(struct thread_options *o)
 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;
 
@@ -587,7 +586,7 @@ static unsigned long long get_rand_start_delay(struct thread_data *td)
 	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;
 }
 
@@ -685,8 +684,11 @@ static int fixup_options(struct thread_data *td)
 	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))  {
@@ -1456,6 +1458,11 @@ static int add_job(struct thread_data *td, const char *jobname, int job_add_num,
 		}
 	}
 
+	if (setup_random_seeds(td)) {
+		td_verror(td, errno, "setup_random_seeds");
+		goto err;
+	}
+
 	if (fixup_options(td))
 		goto err;
 
@@ -1511,11 +1518,6 @@ static int add_job(struct thread_data *td, const char *jobname, int job_add_num,
 	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;
 
diff --git a/thread_options.h b/thread_options.h
index 52026e3..8d13b79 100644
--- a/thread_options.h
+++ b/thread_options.h
@@ -172,6 +172,7 @@ struct thread_options {
 	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;
--
To unsubscribe from this list: send the line "unsubscribe fio" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Kernel]     [Linux SCSI]     [Linux IDE]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux SCSI]

  Powered by Linux