From: K Prateek Nayak Date: Thu, 12 Mar 2026 04:44:31 +0000 (+0000) Subject: sched/core: Check for rcu_read_lock_any_held() in idle_get_state() X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f494bfb04615119f31dbd3222c9d39fea3817d40;p=thirdparty%2Fkernel%2Flinux.git sched/core: Check for rcu_read_lock_any_held() in idle_get_state() Similar to commit 71fedc41c23b ("sched/fair: Switch to rcu_dereference_all()"), switch to checking for rcu_read_lock_any_held() in idle_get_state() to allow removing superfluous rcu_read_lock() regions in the fair task's wakeup path where the pi_lock is held and IRQs are disabled. Signed-off-by: K Prateek Nayak Signed-off-by: Peter Zijlstra (Intel) Reviewed-by: Dietmar Eggemann Tested-by: Dietmar Eggemann Link: https://patch.msgid.link/20260312044434.1974-7-kprateek.nayak@amd.com --- diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h index 953d89d718042..b863bbda6de88 100644 --- a/kernel/sched/sched.h +++ b/kernel/sched/sched.h @@ -2853,7 +2853,7 @@ static inline void idle_set_state(struct rq *rq, static inline struct cpuidle_state *idle_get_state(struct rq *rq) { - WARN_ON_ONCE(!rcu_read_lock_held()); + lockdep_assert(rcu_read_lock_any_held()); return rq->idle_state; }