diff --git a/kernel/sched/fair.c b/kernel/sched/fair.c index 9bbdcce7ef78..7f3f39e7f279 100644 --- a/kernel/sched/fair.c +++ b/kernel/sched/fair.c @@ -836,7 +836,8 @@ static void attach_entity_cfs_rq(struct sched_entity *se); * With new tasks being created, their initial util_avgs are extrapolated * based on the cfs_rq's current util_avg: * - * util_avg = cfs_rq->util_avg / (cfs_rq->load_avg + 1) * se.load.weight + * util_avg = cfs_rq->avg.util_avg / (cfs_rq->avg.load_avg + 1) + * * se_weight(se) * * However, in many cases, the above util_avg does not give a desired * value. Moreover, the sum of the util_avgs may be divergent, such @@ -867,7 +868,7 @@ void post_init_entity_util_avg(struct sched_entity *se) if (cap > 0) { if (cfs_rq->avg.util_avg != 0) { - sa->util_avg = cfs_rq->avg.util_avg * se->load.weight; + sa->util_avg = cfs_rq->avg.util_avg * se_weight(se); sa->util_avg /= (cfs_rq->avg.load_avg + 1); if (sa->util_avg > cap)