Commit 8bc6767a authored by Ingo Molnar's avatar Ingo Molnar

sched: wakeup preemption fix

wakeup preemption fix: do not make it dependent on p->prio.
Preemption purely depends on ->vruntime.

This improves preemption in mixed-nice-level workloads.
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 3e3e13f3
...@@ -863,11 +863,9 @@ static void check_preempt_wakeup(struct rq *rq, struct task_struct *p) ...@@ -863,11 +863,9 @@ static void check_preempt_wakeup(struct rq *rq, struct task_struct *p)
if (unlikely(se->load.weight != NICE_0_LOAD)) if (unlikely(se->load.weight != NICE_0_LOAD))
gran = calc_delta_fair(gran, &se->load); gran = calc_delta_fair(gran, &se->load);
if (delta > gran) { if (delta > gran)
if (p->prio < curr->prio)
resched_task(curr); resched_task(curr);
} }
}
} }
static struct task_struct *pick_next_task_fair(struct rq *rq) static struct task_struct *pick_next_task_fair(struct rq *rq)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment