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 --- 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); } -- -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/