aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/sched/core.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/sched/core.c')
-rw-r--r--kernel/sched/core.c11
1 files changed, 9 insertions, 2 deletions
diff --git a/kernel/sched/core.c b/kernel/sched/core.c
index 74dd565c2e1b..417cf657a606 100644
--- a/kernel/sched/core.c
+++ b/kernel/sched/core.c
@@ -2704,8 +2704,15 @@ need_resched:
2704 2704
2705 pre_schedule(rq, prev); 2705 pre_schedule(rq, prev);
2706 2706
2707 if (unlikely(!rq->nr_running)) 2707 if (unlikely(!rq->nr_running)) {
2708 idle_balance(rq); 2708 /*
2709 * We must set idle_stamp _before_ calling idle_balance(), such
2710 * that we measure the duration of idle_balance() as idle time.
2711 */
2712 rq->idle_stamp = rq_clock(rq);
2713 if (idle_balance(rq))
2714 rq->idle_stamp = 0;
2715 }
2709 2716
2710 put_prev_task(rq, prev); 2717 put_prev_task(rq, prev);
2711 next = pick_next_task(rq); 2718 next = pick_next_task(rq);