On Wed, Jan 08, 2014 at 01:04:07PM +0000, Peter Zijlstra wrote:
On Wed, Jan 08, 2014 at 12:52:28PM +0000, Morten Rasmussen wrote:
If I remember correctly, Alex used the rq runnable_avg_sum (in rq->avg) for this. It is the most obvious choice, but it takes ages to reach 100%.
#define LOAD_AVG_MAX_N 345
Worst case it takes 345 ms from the system is becomes fully utilized after a long period of idle until the rq runnable_avg_sum reaches 100%.
An unweigthed version of cfs_rq->runnable_load_avg and blocked_load_avg wouldn't have that delay.
Right.. not sure we want to involve blocked load on the utilization metric, but who knows maybe that does make sense.
But yes, we need unweighted runnable_avg.
I'm not sure about the blocked load either.
Also, if we are changing the load balance behavior when all cpus are fully utilized
We already have this tipping point. See all the has_capacity bits. But yes, it'd get more involved I suppose.
I'll have a look.