mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-15 02:05:33 +00:00
rcutorture: Use finer-grained timeouts for rcu_torture_writer() polling
The rcu_torture_writer() polling currently uses timeouts ranging from zero to 16 milliseconds to wait for the polled grace period to end. This works, but it would be better to have a higher probability of exercising races with the code that cleans up after a grace period. This commit therefore switches from these millisecond-scale timeouts to timeouts ranging from zero to 128 microseconds, and with a full microsecond's worth of timeout fuzz. Signed-off-by: Paul E. McKenney <paulmck@kernel.org> Signed-off-by: Uladzislau Rezki (Sony) <urezki@gmail.com>
This commit is contained in:
parent
579a05da40
commit
7b6c1648bb
@ -1561,8 +1561,8 @@ rcu_torture_writer(void *arg)
|
||||
break;
|
||||
}
|
||||
WARN_ON_ONCE(ulo_size > 0 && i >= ulo_size);
|
||||
torture_hrtimeout_jiffies(torture_random(&rand) % 16,
|
||||
&rand);
|
||||
torture_hrtimeout_us(torture_random(&rand) % 128, 1000,
|
||||
&rand);
|
||||
}
|
||||
rcu_torture_pipe_update(old_rp);
|
||||
break;
|
||||
@ -1582,8 +1582,8 @@ rcu_torture_writer(void *arg)
|
||||
break;
|
||||
}
|
||||
WARN_ON_ONCE(rgo_size > 0 && i >= rgo_size);
|
||||
torture_hrtimeout_jiffies(torture_random(&rand) % 16,
|
||||
&rand);
|
||||
torture_hrtimeout_us(torture_random(&rand) % 128, 1000,
|
||||
&rand);
|
||||
}
|
||||
rcu_torture_pipe_update(old_rp);
|
||||
break;
|
||||
@ -1592,8 +1592,8 @@ rcu_torture_writer(void *arg)
|
||||
gp_snap = cur_ops->start_gp_poll_exp();
|
||||
rcu_torture_writer_state = RTWS_POLL_WAIT_EXP;
|
||||
while (!cur_ops->poll_gp_state_exp(gp_snap))
|
||||
torture_hrtimeout_jiffies(torture_random(&rand) % 16,
|
||||
&rand);
|
||||
torture_hrtimeout_us(torture_random(&rand) % 128, 1000,
|
||||
&rand);
|
||||
rcu_torture_pipe_update(old_rp);
|
||||
break;
|
||||
case RTWS_POLL_GET_EXP_FULL:
|
||||
@ -1601,8 +1601,8 @@ rcu_torture_writer(void *arg)
|
||||
cur_ops->start_gp_poll_exp_full(&gp_snap_full);
|
||||
rcu_torture_writer_state = RTWS_POLL_WAIT_EXP_FULL;
|
||||
while (!cur_ops->poll_gp_state_full(&gp_snap_full))
|
||||
torture_hrtimeout_jiffies(torture_random(&rand) % 16,
|
||||
&rand);
|
||||
torture_hrtimeout_us(torture_random(&rand) % 128, 1000,
|
||||
&rand);
|
||||
rcu_torture_pipe_update(old_rp);
|
||||
break;
|
||||
case RTWS_SYNC:
|
||||
|
Loading…
x
Reference in New Issue
Block a user