On Fri, Jul 14, 2017 at 01:20:58PM +0000, Josef Bacik wrote:
> From: Josef Bacik <[email protected]>
> 
> 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.

Reply via email to