Re: [PATCH 2/2 v4] sched: Rewrite per entity runnable load average tracking

From: Vincent Guittot
Date: Tue Jul 29 2014 - 09:25:12 EST

On 29 July 2014 03:43, Yuyang Du <yuyang.du@xxxxxxxxx> wrote:
> On Tue, Jul 29, 2014 at 11:12:37AM +0200, Vincent Guittot wrote:
>> >>
>> >> Do you really need to have *w for computing the load_sum ? can't you
>> >> only use it when computing the load_avg ?
>> >>
>> >> sa->load_avg = div_u64(sa->load_sum * w , LOAD_AVG_MAX)
>> >>
>> >
>> > For task, assuming its load.weight does not change much, yes, we can. But in theory, task's
>> I would even say that the load_avg of a task should not be impacted by
>> an old priority value. Once, the priority of a task is changed, we
>> should only take into account this new priority to weight the load_avg
>> of the task
>> > load.weight can change, and *w in load_sum can take into that change. For group entity
>> > and cfs_rq, its load.weight changes all the time, I don't know how to do it without *w
>> > for load_sum.
>> IMHO, we should apply the same policy than the one i mentioned for
>> task. So the load_avg of an entity or a cfs_rq will not be disturbed
>> by an old but no more valid weight
> Well, I see your point. But the problem is what matters is load_avg vs. load_avg, not a
> load_avg itself. So, if load_avg1 discards old weight if weight is changed, but load_avg2
> has no weight changed or has weight changed, the comparison load_avg1 vs. load_avg2 is not
> fair, but too impacted by the new weight. The point is, we count in history, so connt in the
> real history, which is the whole point of why we count the history. Make sense?

IIUC, you want to soften the impact of weight change on cfs_rq-> load_avg ?

> Thanks,
> Yuyang
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at
Please read the FAQ at