Messages in this thread | | | Date | Tue, 24 May 2016 04:24:01 +0800 | From | Yuyang Du <> | Subject | Re: [tip:sched/core] sched/fair: Correct unit of load_above_capacity |
| |
On Thu, May 19, 2016 at 04:36:38PM +0100, Morten Rasmussen wrote: > > And this is exactly you get with this patch :-) load_above_capacity > (through max_pull) is multiplied by the group capacity to compute that > actual amount of [load] to remove: > > env->imbalance = load_above_capacity * busiest->group_capacity / > SCHED_CAPACITY_SCALE > > = 1*NICE_0_LOAD * 3*SCHED_CAPACITY_SCALE / > SCHED_CAPACITY_SCALE > > = 3*NICE_0_LOAD > > I don't think we disagree on how it should work :-) Without the capacity > scaling in this patch you get: > > env->imbalance = (6*SCHED_CAPACITY_SCALE - 3*SCHED_CAPACITY_SCALE) * > 3*SCHED_CAPACITY_SCALE / SCHED_CAPACITY_SCALE > > = 9*SCHED_CAPACITY_SCALE > > Coming back to Yuyang's question. I think it should be NICE_0_LOAD to > ensure that the resulting imbalance has the proper unit [load].
Sorry, I'm still confused. After this patch, the unit is indeed [load], the load same as the weight visible to the user. However, you literally compared it with sg_lb_stats's avg_load and load_per_task, which has the unit of load_avg, which is scaled_load_down(NICE_0_LOAD). Am I missing something?
| |