]> www.infradead.org Git - users/dwmw2/linux.git/commit
rcutorture: Update ->extendables check for lazy preemption
authorBoqun Feng <boqun.feng@gmail.com>
Mon, 24 Feb 2025 04:29:31 +0000 (20:29 -0800)
committerBoqun Feng <boqun.feng@gmail.com>
Wed, 5 Mar 2025 02:46:47 +0000 (18:46 -0800)
commita56ca5619f9ccce701789e2d231419ed50c0f033
tree9f3c5ea4135da7580c21e9532a1cbe65d588c5ab
parent0be4b19edd74297f9843d756eb879a0960bd4860
rcutorture: Update ->extendables check for lazy preemption

The rcutorture_one_extend_check() function's second last check assumes
that "preempt_count() & PREEMPT_MASK" is non-zero only if
RCUTORTURE_RDR_PREEMPT or RCUTORTURE_RDR_SCHED bit is set.

This works for preemptible RCU and for non-preemptible RCU running in
a non-preemptible kernel.  But it fails for non-preemptible RCU running
in a preemptible kernel because then rcu_read_lock() is just
preempt_disable(), which increases preempt count.

This commit therefore adjusts this check to take into account the case
fo non-preemptible RCU running in a preemptible kernel.

Reviewed-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Boqun Feng <boqun.feng@gmail.com>
kernel/rcu/rcutorture.c