On Wed, Jan 08, 2014 at 12:45:34PM +0000, Peter Zijlstra wrote:
On Wed, Jan 08, 2014 at 12:35:34PM +0000, Morten Rasmussen wrote:
Currently we detect overload by sg.nr_running >= sg.capacity, which can be very misleading because while a cpu might have a task running 'now' it might be 99% idle.
At which point I argued we should change the capacity thing anyhow. Ever since the runnable_avg patch set I've been arguing to change that into an actual utilization test.
So I think that if we measure overload by something like >95% utilization on the entire group the load scaling again makes perfect sense.
I agree that it make more sense to change the overload test to be based on some tracked load. How about the non-overloaded case? Load balancing would have to be based on unweighted task loads in that case?
Yeah, until we're overloaded our goal is to minimize idle time.
I would say, make the most of the available cpu cycles. Minimizing idle time is not always the right thing to do when considering power awareness.
If we know the actual load of the tasks, we may be able to consolidate them on fewer cpus and save power by idling cpus. In that case the idle time (total) is unchanged (unless the P-state is changed). Somewhat similar to the video use-case running on 1, 2, and 4 cpu that I reposted yesterday.