diff options
author | 2022-03-15 16:33:38 +0100 | |
---|---|---|
committer | 2022-04-11 17:07:29 -0700 | |
commit | bd6c375b92c3f367e184d164e12952e4b9d9fb4f (patch) | |
tree | 3144510fbe7db48d3825b07a74a925184c706d3f /kernel/rcu/tree.h | |
parent | rcutorture: Add missing return and use __func__ in warning (diff) | |
download | wireguard-linux-bd6c375b92c3f367e184d164e12952e4b9d9fb4f.tar.xz wireguard-linux-bd6c375b92c3f367e184d164e12952e4b9d9fb4f.zip |
rcutorture: Call preempt_schedule() through static call/key
The rcutorture test suite sometimess triggers a random scheduler
preemption call while simulating a read delay. Unfortunately, its
direct call to preempt_schedule() bypasses the static call/key filter
used by CONFIG_PREEMPT_DYNAMIC. This breaks the no-preempt assumption
when the dynamic preemption mode is "none".
For example, rcu_blocking_is_gp() is fooled and abbreviates grace periods
when the CPU runs in no-preempt UP mode.
Fix this by making torture_preempt_schedule() call __preempt_schedule(),
which uses the static call/key.
Reported-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Frederic Weisbecker <frederic@kernel.org>
Signed-off-by: Paul E. McKenney <paulmck@kernel.org>
Diffstat (limited to 'kernel/rcu/tree.h')
0 files changed, 0 insertions, 0 deletions