diff options
author | Vincent Guittot <vincent.guittot@linaro.org> | 2014-12-12 11:25:03 +0100 |
---|---|---|
committer | Vincent Guittot <vincent.guittot@linaro.org> | 2014-12-16 15:41:04 +0100 |
commit | 5f74d508f3f5edfe91ccb7437c139928a79db4f7 (patch) | |
tree | ce73e0bbfd0e89e1ecf92f22bbb490600e858b10 | |
parent | 3ac2b6a05c915770c8bb9c84e4b201754ebd5c24 (diff) |
sched: fix load tracking
ensure periodic update of blocked load of idle cores
-rw-r--r-- | kernel/sched/fair.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index b34746d776a9..114af01c4a2e 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -5721,6 +5721,14 @@ static unsigned long task_h_load(struct task_struct *p) #else static inline void update_blocked_averages(int cpu) { + struct rq *rq = cpu_rq(cpu); + unsigned long flags; + + raw_spin_lock_irqsave(&rq->lock, flags); + update_rq_clock(rq); + update_rq_runnable_avg(rq, rq->nr_running); + update_cfs_rq_blocked_load(&rq->cfs, 1); + raw_spin_unlock_irqrestore(&rq->lock, flags); } static unsigned long task_h_load(struct task_struct *p) |