diff --git a/kernel/sched_fair.c b/kernel/sched_fair.c index 414145cf53443aa4ddc938229c02bd0d67bbd822..77e9166d7bbfe304dcc2bdb9c71276d4a3a3b18b 100644 --- a/kernel/sched_fair.c +++ b/kernel/sched_fair.c @@ -1062,6 +1062,9 @@ check_preempt_tick(struct cfs_rq *cfs_rq, struct sched_entity *curr) struct sched_entity *se = __pick_next_entity(cfs_rq); s64 delta = curr->vruntime - se->vruntime; + if (delta < 0) + return; + if (delta > ideal_runtime) resched_task(rq_of(cfs_rq)->curr); }