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: Paul E. McKenney <paulmck@kernel.org> Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
This commit is contained in:
parent
0bb80ecc33
commit
d0b654e19a
@ -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
|
* A special case is when shuffle_idle_cpu = -1, in which case we allow
|
||||||
* the tasks to run on all CPUs.
|
* 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;
|
struct shuffle_task *stp;
|
||||||
|
|
||||||
cpumask_setall(shuffle_tmp_mask);
|
cpumask_setall(shuffle_tmp_mask);
|
||||||
@ -543,7 +542,7 @@ static void torture_shuffle_tasks(void)
|
|||||||
|
|
||||||
mutex_lock(&shuffle_task_mutex);
|
mutex_lock(&shuffle_task_mutex);
|
||||||
list_for_each_entry(stp, &shuffle_task_list, st_l) {
|
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);
|
set_cpus_allowed_ptr(stp->st_t, shuffle_tmp_mask);
|
||||||
}
|
}
|
||||||
mutex_unlock(&shuffle_task_mutex);
|
mutex_unlock(&shuffle_task_mutex);
|
||||||
@ -562,7 +561,7 @@ static int torture_shuffle(void *arg)
|
|||||||
VERBOSE_TOROUT_STRING("torture_shuffle task started");
|
VERBOSE_TOROUT_STRING("torture_shuffle task started");
|
||||||
do {
|
do {
|
||||||
torture_hrtimeout_jiffies(shuffle_interval, &rand);
|
torture_hrtimeout_jiffies(shuffle_interval, &rand);
|
||||||
torture_shuffle_tasks();
|
torture_shuffle_tasks(&rand);
|
||||||
torture_shutdown_absorb("torture_shuffle");
|
torture_shutdown_absorb("torture_shuffle");
|
||||||
} while (!torture_must_stop());
|
} while (!torture_must_stop());
|
||||||
torture_kthread_stopping("torture_shuffle");
|
torture_kthread_stopping("torture_shuffle");
|
||||||
@ -673,7 +672,7 @@ int torture_shutdown_init(int ssecs, void (*cleanup)(void))
|
|||||||
if (ssecs > 0) {
|
if (ssecs > 0) {
|
||||||
shutdown_time = ktime_add(ktime_get(), ktime_set(ssecs, 0));
|
shutdown_time = ktime_add(ktime_get(), ktime_set(ssecs, 0));
|
||||||
return torture_create_kthread(torture_shutdown, NULL,
|
return torture_create_kthread(torture_shutdown, NULL,
|
||||||
shutdown_task);
|
shutdown_task);
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user