aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/sched.c
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/sched.c')
-rw-r--r--kernel/sched.c8
1 files changed, 6 insertions, 2 deletions
diff --git a/kernel/sched.c b/kernel/sched.c
index 893211054790..d67345175179 100644
--- a/kernel/sched.c
+++ b/kernel/sched.c
@@ -1967,9 +1967,12 @@ static void update_cpu_load(struct rq *this_rq)
1967 unsigned long total_load = this_rq->ls.load.weight; 1967 unsigned long total_load = this_rq->ls.load.weight;
1968 unsigned long this_load = total_load; 1968 unsigned long this_load = total_load;
1969 struct load_stat *ls = &this_rq->ls; 1969 struct load_stat *ls = &this_rq->ls;
1970 u64 now = __rq_clock(this_rq); 1970 u64 now;
1971 int i, scale; 1971 int i, scale;
1972 1972
1973 __update_rq_clock(this_rq);
1974 now = this_rq->clock;
1975
1973 this_rq->nr_load_updates++; 1976 this_rq->nr_load_updates++;
1974 if (unlikely(!(sysctl_sched_features & SCHED_FEAT_PRECISE_CPU_LOAD))) 1977 if (unlikely(!(sysctl_sched_features & SCHED_FEAT_PRECISE_CPU_LOAD)))
1975 goto do_avg; 1978 goto do_avg;
@@ -3458,7 +3461,8 @@ need_resched_nonpreemptible:
3458 3461
3459 spin_lock_irq(&rq->lock); 3462 spin_lock_irq(&rq->lock);
3460 clear_tsk_need_resched(prev); 3463 clear_tsk_need_resched(prev);
3461 now = __rq_clock(rq); 3464 __update_rq_clock(rq);
3465 now = rq->clock;
3462 3466
3463 if (prev->state && !(preempt_count() & PREEMPT_ACTIVE)) { 3467 if (prev->state && !(preempt_count() & PREEMPT_ACTIVE)) {
3464 if (unlikely((prev->state & TASK_INTERRUPTIBLE) && 3468 if (unlikely((prev->state & TASK_INTERRUPTIBLE) &&