Commit d0b654e1 authored by Paul E. McKenney's avatar Paul E. McKenney Committed by Frederic Weisbecker
Browse files

torture: Share torture_random_state with torture_shuffle_tasks()



Both torture_shuffle_tasks() and its caller torture_shuffle()
define a torture_random_state structure.  This is suboptimal given
that torture_shuffle_tasks() runs for a very short period of time.
This commit therefore causes torture_shuffle() to pass a pointer to its
torture_random_state structure down to torture_shuffle_tasks().

Signed-off-by: default avatarPaul E. McKenney <paulmck@kernel.org>
Signed-off-by: default avatarFrederic Weisbecker <frederic@kernel.org>
parent 0bb80ecc
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -520,9 +520,8 @@ static void torture_shuffle_task_unregister_all(void)
 * A special case is when shuffle_idle_cpu = -1, in which case we allow
 * the tasks to run on all CPUs.
 */
static void torture_shuffle_tasks(void)
static void torture_shuffle_tasks(struct torture_random_state *trp)
{
	DEFINE_TORTURE_RANDOM(rand);
	struct shuffle_task *stp;

	cpumask_setall(shuffle_tmp_mask);
@@ -543,7 +542,7 @@ static void torture_shuffle_tasks(void)

	mutex_lock(&shuffle_task_mutex);
	list_for_each_entry(stp, &shuffle_task_list, st_l) {
		if (!random_shuffle || torture_random(&rand) & 0x1)
		if (!random_shuffle || torture_random(trp) & 0x1)
			set_cpus_allowed_ptr(stp->st_t, shuffle_tmp_mask);
	}
	mutex_unlock(&shuffle_task_mutex);
@@ -562,7 +561,7 @@ static int torture_shuffle(void *arg)
	VERBOSE_TOROUT_STRING("torture_shuffle task started");
	do {
		torture_hrtimeout_jiffies(shuffle_interval, &rand);
		torture_shuffle_tasks();
		torture_shuffle_tasks(&rand);
		torture_shutdown_absorb("torture_shuffle");
	} while (!torture_must_stop());
	torture_kthread_stopping("torture_shuffle");