diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c index cf958aefac33c182baab30ee9e2916156bf3fa83..6c091d6e159d01fb23c0dd786495c533cb005c5b 100644 --- a/kernel/sched_fair.c +++ b/kernel/sched_fair.c @@ -1106,7 +1106,11 @@ static void check_preempt_wakeup(struct rq *rq, struct task_struct *p) } gran = sysctl_sched_wakeup_granularity; - if (unlikely(se->load.weight != NICE_0_LOAD)) + /* + * More easily preempt - nice tasks, while not making + * it harder for + nice tasks. + */ + if (unlikely(se->load.weight > NICE_0_LOAD)) gran = calc_delta_fair(gran, &se->load); if (pse->vruntime + gran < se->vruntime)