lkml.org 
[lkml]   [2010]   [Dec]   [6]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[RFC][PATCH 04/10] sched: Change pick_next_task_rt from unlikely to likely
    From: Steven Rostedt <srostedt@redhat.com>

    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.

    Cc:Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Gregory Haskins <ghaskins@novell.com>
    Signed-off-by: Steven Rostedt <rostedt@goodmis.org>
    ---
    kernel/sched_rt.c | 2 +-
    1 files changed, 1 insertions(+), 1 deletions(-)

    diff --git a/kernel/sched_rt.c b/kernel/sched_rt.c
    index 7a5c4db..a249ae3 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 (likely(!rt_rq->rt_nr_running))
    return NULL;

    if (rt_rq_throttled(rt_rq))
    --
    1.7.2.3



    \
     
     \ /
      Last update: 2010-12-07 03:17    [W:0.019 / U:4.848 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site