sched: do not wakeup-preempt with SCHED_BATCH tasks
do not wakeup-preempt with SCHED_BATCH tasks, their preemption is batched too, driven by the tick. Signed-off-by: Ingo Molnar <mingo@elte.hu>
This commit is contained in:
parent
fb7dde37ec
commit
91c234b4e3
1 changed files with 6 additions and 0 deletions
|
@ -828,6 +828,12 @@ static void check_preempt_wakeup(struct rq *rq, struct task_struct *p)
|
||||||
resched_task(curr);
|
resched_task(curr);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
/*
|
||||||
|
* Batch tasks do not preempt (their preemption is driven by
|
||||||
|
* the tick):
|
||||||
|
*/
|
||||||
|
if (unlikely(p->policy == SCHED_BATCH))
|
||||||
|
return;
|
||||||
|
|
||||||
if (sched_feat(WAKEUP_PREEMPT)) {
|
if (sched_feat(WAKEUP_PREEMPT)) {
|
||||||
while (!is_same_group(se, pse)) {
|
while (!is_same_group(se, pse)) {
|
||||||
|
|
Loading…
Reference in a new issue