|
@@ -1526,9 +1526,10 @@ static void check_preempt_wakeup(struct rq *rq, struct task_struct *p, int sync)
|
|
|
if (!sched_feat(WAKEUP_PREEMPT))
|
|
|
return;
|
|
|
|
|
|
- if (sched_feat(WAKEUP_OVERLAP) && (sync ||
|
|
|
- (se->avg_overlap < sysctl_sched_migration_cost &&
|
|
|
- pse->avg_overlap < sysctl_sched_migration_cost))) {
|
|
|
+ if ((sched_feat(WAKEUP_SYNC) && sync) ||
|
|
|
+ (sched_feat(WAKEUP_OVERLAP) &&
|
|
|
+ (se->avg_overlap < sysctl_sched_migration_cost &&
|
|
|
+ pse->avg_overlap < sysctl_sched_migration_cost))) {
|
|
|
resched_task(curr);
|
|
|
return;
|
|
|
}
|