lkml.org 
[lkml]   [2008]   [Oct]   [17]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH 4/4] sched: fix wakeup preemption
    In my recent wakeup preempt rework I messed up the asym wakeup.
    The idea is that it should be easier to preempt lighter tasks
    but not harder to preempt heavier tasks.

    Signed-off-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
    ---
    kernel/sched_fair.c | 6 +++---
    1 file changed, 3 insertions(+), 3 deletions(-)

    Index: linux-2.6/kernel/sched_fair.c
    ===================================================================
    --- linux-2.6.orig/kernel/sched_fair.c
    +++ linux-2.6/kernel/sched_fair.c
    @@ -1243,8 +1243,8 @@ static unsigned long wakeup_gran(struct
    * More easily preempt - nice tasks, while not making it harder for
    * + nice tasks.
    */
    - if (sched_feat(ASYM_GRAN))
    - gran = calc_delta_mine(gran, NICE_0_LOAD, &se->load);
    + if (sched_feat(ASYM_GRAN) && se->load.weight < NICE_0_LOAD)
    + gran = (gran * se->load.weight) >> NICE_0_SHIFT;

    return gran;
    }
    @@ -1296,7 +1296,7 @@ static void check_preempt_wakeup(struct
    }

    delta_exec = se->sum_exec_runtime - se->prev_sum_exec_runtime;
    - if (delta_exec > wakeup_gran(pse))
    + if (delta_exec > wakeup_gran(se))
    resched_task(curr);
    }

    --



    \
     
     \ /
      Last update: 2008-10-17 19:33    [W:0.043 / U:29.632 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site