Messages in this thread | | | Subject | Re: [PATCH] cpuidle: menu: use nr_running instead of cpuload for calculating perf mult | From | Peter Zijlstra <> | Date | Mon, 04 Jun 2012 18:33:27 +0200 |
| |
On Mon, 2012-06-04 at 08:39 -0700, Arjan van de Ven wrote:
> hmm I think you're missing the whole point.
Probably.. as I've still no clue what you're wanting to do.
> > I'm just not buying load actually matters or works, if there's lots of > > idle time load history should be low, if there's not a lot of idle time, > > you're busy (per definition) and again load isn't important. > > if there is a lot of idle, load can be low or high; load is more than > just cpu usage. it includes waiting for resources and mutexes etc.
It very much does not. The thing its using: this_cpu_load() returns rq->cpu_load[0], does not include blocked tasks of any kind.
> if load is low, you are idle, sure (in that direction it works). If load > is low, the heuristic that is used here will not hinder a deep C state > choice. > > if there is not a lot of idle time, sure, load is high.
False, you can have 0 idle time and still have low load.
> but because idle > time tends to be bursty, we can still be idle for, say, a millisecond > every 10 milliseconds. In this scenario, the load average is used to > ensure that the 200 usecond cost of exiting idle is acceptable.
So what you're saying is that if you have 1ms idle in 10ms, it might not be a continuous 1ms. And you're using load as a measure of how many fragments it comes apart in?
That's not making sense.
> one other way of doing this would be tracking cumulative accrued latency > as a percentage of cpu busy time... but that's also a pretty > approximative measure.
To what purpose? I'm completely confused now, none of what you say is making any sense.
| |