On Mon, Nov 21, 2016 at 05:00:16PM +0530, Viresh Kumar wrote:
On 21-11-16, 12:12, Peter Zijlstra wrote:
I think it should be replaced by a value provided by the driver. It makes sense to have a rate-limit in so far as that it doesn't make sense to try and program the hardware faster than it can actually change frequencies and/or have a programming cost amortization. And this very clearly is a driver specific thing.
We already have something called as transition_latency for that (though it isn't used much currently).
It however doesn't make sense to me to fudge with this in order to achieve ramp up/down differences.
So if a platform, for example, can do DVFS in say 100-500 us, then the scheduler should try to re-evaluate frequency (and update it) after that short of a period? Wouldn't that scheme waste lots of time doing just freq updates? And that's the primary reason why cpufreq governors have some sort of sampling-rate or rate-limit until now.
Dunno.. there's of course the cost amortization, but by the time we've reached sugov_should_update_freq() most of the 'expensive' parts have already been done from the scheduler's POV and its once again down to the driver.