[PATCH v3 5/8] sched/core: Check for rcu_read_lock_any_held() in idle_get_state()

K Prateek Nayak posted 8 patches 2 weeks, 5 days ago
[PATCH v3 5/8] sched/core: Check for rcu_read_lock_any_held() in idle_get_state()
Posted by K Prateek Nayak 2 weeks, 5 days ago
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 <kprateek.nayak@amd.com>
---
Changelog rfc v2..v3:

o New patch.
---
 kernel/sched/sched.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/kernel/sched/sched.h b/kernel/sched/sched.h
index 58c9d244f12b..14fc9fca2502 100644
--- a/kernel/sched/sched.h
+++ b/kernel/sched/sched.h
@@ -2783,7 +2783,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());
+	WARN_ON_ONCE(!rcu_read_lock_any_held());
 
 	return rq->idle_state;
 }
-- 
2.34.1