diff options
Diffstat (limited to 'kernel/sched.c')
| -rw-r--r-- | kernel/sched.c | 8 | 
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) && | 
