[Devel] [PATCH RFC] sched: move h_load calculation to task_h_load

Peter Zijlstra peterz at infradead.org
Mon Jul 15 03:59:50 PDT 2013


On Mon, Jul 15, 2013 at 02:00:42PM +0400, Vladimir Davydov wrote:
> On 07/15/2013 12:28 PM, Peter Zijlstra wrote:
> >OK, fair enough. It does somewhat rely on us getting the single
> >rq->clock update thing right, but that should be ok.
> 
> Frankly, I doubt that rq->clock is the right thing to use here, because it
> can be updated very frequently under some conditions, so that cfs_rq->h_load
> can get updated several times during the same balance run. Perhaps, jiffies
> would suit better for that purpose. This would work as h_load update
> throttler similar to how it works now (I mean rq->h_load_throttle in
> update_h_load()).
> 
> If there is something else you don't like/have some thoughts on, please
> share - I'll try to improve.

Yeah, go with jiffies, that makes more sense.

Other than that, when I initially saw your patch I thought about 'fixing'
walk_tg_tree() to ignore groups that have no tasks but that's not going to help
for the case where all groups have 1 (or more) tasks that are inactive.

We also cannot use cfs_rq::h_nr_running because that's per cpu and not system
wide.

So yeah, after a bit of a ponder I agreed that your aproach was the most
feasible.

So unless someone else has a bright idea I think what you propose is a good
solution.



More information about the Devel mailing list