aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/sched.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/sched.c')
-rw-r--r--kernel/sched.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/kernel/sched.c b/kernel/sched.c
index f3030709d826..61452e86c73b 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -5522,8 +5522,15 @@ again:
5522 goto out; 5522 goto out;
5523 5523
5524 yielded = curr->sched_class->yield_to_task(rq, p, preempt); 5524 yielded = curr->sched_class->yield_to_task(rq, p, preempt);
5525 if (yielded) 5525 if (yielded) {
5526 schedstat_inc(rq, yld_count); 5526 schedstat_inc(rq, yld_count);
5527 /*
5528 * Make p's CPU reschedule; pick_next_entity takes care of
5529 * fairness.
5530 */
5531 if (preempt && rq != p_rq)
5532 resched_task(p_rq->curr);
5533 }
5527 5534
5528out: 5535out:
5529 double_rq_unlock(rq, p_rq); 5536 double_rq_unlock(rq, p_rq);