|
@@ -2907,7 +2907,7 @@ static void check_preempt_wakeup(struct rq *rq, struct task_struct *p, int wake_
|
|
* Batch and idle tasks do not preempt non-idle tasks (their preemption
|
|
* Batch and idle tasks do not preempt non-idle tasks (their preemption
|
|
* is driven by the tick):
|
|
* is driven by the tick):
|
|
*/
|
|
*/
|
|
- if (unlikely(p->policy != SCHED_NORMAL))
|
|
|
|
|
|
+ if (unlikely(p->policy != SCHED_NORMAL) || !sched_feat(WAKEUP_PREEMPTION))
|
|
return;
|
|
return;
|
|
|
|
|
|
find_matching_se(&se, &pse);
|
|
find_matching_se(&se, &pse);
|