|
@@ -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)
|