diff options
Diffstat (limited to 'kernel/sched/fair.c')
-rw-r--r-- | kernel/sched/fair.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 81f11427e9b1..dc38c493f4ca 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -2485,7 +2485,8 @@ static long __update_entity_utilization_avg_contrib(struct sched_entity *se) __update_task_entity_utilization(se); else se->avg.utilization_avg_contrib = - group_cfs_rq(se)->utilization_load_avg; + group_cfs_rq(se)->utilization_load_avg + + group_cfs_rq(se)->utilization_blocked_avg; return se->avg.utilization_avg_contrib - old_contrib; } @@ -4538,11 +4539,12 @@ done: static int get_cpu_usage(int cpu) { unsigned long usage = cpu_rq(cpu)->cfs.utilization_load_avg; + unsigned long blocked = cpu_rq(cpu)->cfs.utilization_blocked_avg; - if (usage >= SCHED_LOAD_SCALE) + if (usage + blocked >= SCHED_LOAD_SCALE) return capacity_orig_of(cpu); - return usage; + return usage + blocked; } /* |