Messages in this thread | | | From | Vincent Guittot <> | Date | Tue, 29 Jul 2014 15:17:29 +0200 | Subject | Re: [PATCH 2/2 v4] sched: Rewrite per entity runnable load average tracking |
| |
On 29 July 2014 03:43, Yuyang Du <yuyang.du@intel.com> 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
| |