Re: [PATCH 1/7] sched/fair: use reweight_entity to reweight tasks

From: Peter Zijlstra
Date: Mon Jul 31 2017 - 06:45:58 EST


On Fri, Jul 14, 2017 at 01:20:58PM +0000, Josef Bacik wrote:
> From: Josef Bacik <jbacik@xxxxxx>
>
> reweight_task only accounts for the load average change in the cfs_rq, but
> doesn't account for the runnable_average change in the cfs_rq. We need to do
> everything reweight_entity does, and then we just set our inv_weight
> appropriately.

The difference is in the calling convention. If you look at the
callsite:

set_user_nice()
set_load_weight()
reweight_task()

You'll see that ->on_rq will always be false. That said, I think you're
right in that we're missing a se->runnable_weight update, because while
__update_load_avg*() doesn't use it (and will in fact (re)set it), there
are other users that could come before that.