lkml.org 
[lkml]   [2010]   [Mar]   [11]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    SubjectRe: [patch 11/12] sched: remove ASYM_GRAN feature
    From
    Date

    sched: remove ASYM_GRAN feature

    This features has been enabled for quite a while, after testing showed that
    easing preemption for light tasks was harmful to high priority threads.

    Remove it.

    Signed-off-by: Mike Galbraith <efault@gmx.de>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    LKML-Reference: <new-submission>

    ---
    kernel/sched_fair.c | 28 +++++++++++-----------------
    kernel/sched_features.h | 6 ------
    2 files changed, 11 insertions(+), 23 deletions(-)

    Index: linux-2.6/kernel/sched_fair.c
    ===================================================================
    --- linux-2.6.orig/kernel/sched_fair.c
    +++ linux-2.6/kernel/sched_fair.c
    @@ -1582,24 +1582,18 @@ wakeup_gran(struct sched_entity *curr, s
    /*
    * Since its curr running now, convert the gran from real-time
    * to virtual-time in his units.
    + *
    + * By using 'se' instead of 'curr' we penalize light tasks, so
    + * they get preempted easier. That is, if 'se' < 'curr' then
    + * the resulting gran will be larger, therefore penalizing the
    + * lighter, if otoh 'se' > 'curr' then the resulting gran will
    + * be smaller, again penalizing the lighter task.
    + *
    + * This is especially important for buddies when the leftmost
    + * task is higher priority than the buddy.
    */
    - if (sched_feat(ASYM_GRAN)) {
    - /*
    - * By using 'se' instead of 'curr' we penalize light tasks, so
    - * they get preempted easier. That is, if 'se' < 'curr' then
    - * the resulting gran will be larger, therefore penalizing the
    - * lighter, if otoh 'se' > 'curr' then the resulting gran will
    - * be smaller, again penalizing the lighter task.
    - *
    - * This is especially important for buddies when the leftmost
    - * task is higher priority than the buddy.
    - */
    - if (unlikely(se->load.weight != NICE_0_LOAD))
    - gran = calc_delta_fair(gran, se);
    - } else {
    - if (unlikely(curr->load.weight != NICE_0_LOAD))
    - gran = calc_delta_fair(gran, curr);
    - }
    + if (unlikely(se->load.weight != NICE_0_LOAD))
    + gran = calc_delta_fair(gran, se);

    return gran;
    }
    Index: linux-2.6/kernel/sched_features.h
    ===================================================================
    --- linux-2.6.orig/kernel/sched_features.h
    +++ linux-2.6/kernel/sched_features.h
    @@ -17,12 +17,6 @@ SCHED_FEAT(START_DEBIT, 1)
    SCHED_FEAT(WAKEUP_PREEMPT, 1)

    /*
    - * When converting the wakeup granularity to virtual time, do it such
    - * that heavier tasks preempting a lighter task have an edge.
    - */
    -SCHED_FEAT(ASYM_GRAN, 1)
    -
    -/*
    * Use the SYNC wakeup hint, pipes and the likes use this to indicate
    * the remote end is likely to consume the data we just wrote, and
    * therefore has cache benefit from being placed on the same cpu, see



    \
     
     \ /
      Last update: 2010-03-11 11:03    [W:0.023 / U:64.688 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site