Skip to contentSkip to conversation

sched: Use RCU variant of list traversal in for_each_leaf_rt_rq()

PATCH Applied Bharata B Rao 2 participants 3 messages Dec 15, 2008 – Dec 17, 2008

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 sched: Use RCU variant of list traversal in for_each_leaf_rt_rq()

sched: Use RCU variant of list traversal in for_each_leaf_rt_rq()

for_each_leaf_rt_rq() walks an RCU protected list (rq->leaf_rt_rq_list), but doesn't use list_for_each_entry_rcu(). Fix this.

---
 kernel/sched_rt.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
kernel/sched_rt.c +1 -1
@@ -77,7 +77,7 @@ static inline u64 sched_rt_period(struct
 }
 
 #define for_each_leaf_rt_rq(rt_rq, rq) \
-	list_for_each_entry(rt_rq, &rq->leaf_rt_rq_list, leaf_rt_rq_list)
+	list_for_each_entry_rcu(rt_rq, &rq->leaf_rt_rq_list, leaf_rt_rq_list)
 
 static inline struct rq *rq_of_rt_rq(struct rt_rq *rt_rq)
 {

Regards,
Bharata.

Applied
#1 lore raw
Quoted 9 lines · Bharata B Rao

sched: Use RCU variant of list traversal in for_each_leaf_rt_rq()

for_each_leaf_rt_rq() walks an RCU protected list (rq->leaf_rt_rq_list), but doesn't use list_for_each_entry_rcu(). Fix this.

---
 kernel/sched_rt.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

applied to tip/sched/urgent, thanks Bharata!

i'm wondering, have you observed a real crash, or did you find this via code review?

Ingo

#2 lore raw
Quoted 13 lines · Ingo Molnar
Quoted 9 lines · Bharata B Rao

sched: Use RCU variant of list traversal in for_each_leaf_rt_rq()

for_each_leaf_rt_rq() walks an RCU protected list (rq->leaf_rt_rq_list), but doesn't use list_for_each_entry_rcu(). Fix this.

---
 kernel/sched_rt.c |    2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
Quoted 4 lines

applied to tip/sched/urgent, thanks Bharata!

i'm wondering, have you observed a real crash, or did you find this via code review?

Via code review.

Thanks,
Bharata.