summaryrefslogtreecommitdiffstats
path: root/kernel/sched_rt.c
diff options
context:
space:
mode:
authorSteven Rostedt <srostedt@redhat.com>2010-12-06 11:28:30 -0500
committerSteven Rostedt <rostedt@goodmis.org>2010-12-13 19:55:15 -0500
commit8e54a2c036d8c47195f094af1628834f4c55844a (patch)
treeb9a2b381becf13e620ba794e81bbd81022d93904 /kernel/sched_rt.c
parent33c3d6c61debcc0d295fe65521cfbc45409936c7 (diff)
downloadlinux-8e54a2c036d8c47195f094af1628834f4c55844a.tar.gz
linux-8e54a2c036d8c47195f094af1628834f4c55844a.tar.bz2
linux-8e54a2c036d8c47195f094af1628834f4c55844a.zip
sched: Change pick_next_task_rt from unlikely to likely
The if (unlikely(!rt_rq->rt_nr_running)) test in pick_next_task_rt() tests if there is another rt task ready to run. If so, then pick it. In most systems, only one RT task runs at a time most of the time. Running the branch unlikely annotator profiler on a system doing average work "running firefox, evolution, xchat, distcc builds, etc", it showed the following: correct incorrect % Function File Line ------- --------- - -------- ---- ---- 324344 135104992 99 _pick_next_task_rt sched_rt.c 1064 99% of the time the condition is true. When an RT task schedules out, it is unlikely that another RT task is waiting to run on that same run queue. Simply remove the unlikely() condition. Acked-by: Gregory Haskins <ghaskins@novell.com> Cc:Peter Zijlstra <a.p.zijlstra@chello.nl> Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
Diffstat (limited to 'kernel/sched_rt.c')
-rw-r--r--kernel/sched_rt.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/kernel/sched_rt.c b/kernel/sched_rt.c
index 1ab66a227b51..c2266c43e993 100644
--- a/kernel/sched_rt.c
+++ b/kernel/sched_rt.c
@@ -1062,7 +1062,7 @@ static struct task_struct *_pick_next_task_rt(struct rq *rq)
rt_rq = &rq->rt;
- if (unlikely(!rt_rq->rt_nr_running))
+ if (!rt_rq->rt_nr_running)
return NULL;
if (rt_rq_throttled(rt_rq))