On Mon, 15 Jul 2013, Arjan van de Ven wrote:
On 7/15/2013 2:03 PM, Peter Zijlstra wrote:
Well, if you ever want to go faster there must've been a moment to slow down. Without means and reason to slow down the entire 'can I go fast noaw pls?' thing simply doesn't make sense.
I kind of tried to hint at this
there's either
go_fastest_now()
with the contract that the policy drivers can override this after some time (few ms)
or you have to treat it as a lease:
go_fastest()
and then
no_need_to_go_fastest_anymore_so_forget_I_asked()
this is NOT the same as
go_slow_now()
the former has a specific request, and then an end to that specific request, the later is just a new unbounded command
if you have requests (that either time out or get canceled), you can have requests from multiple parts of the kernel (and potentially even from hardware in the thermal case), and some arbiter who resolves multiple requests existing.
if you only have unbounded commands, you cannot really have such an arbiter.
Sometimes the user has something running that they want to keep running, but they don't need it to be going fast.
An example is if you are monitoring something.
Unless you can go to sleep between monitoring polls, it makes more sense to run slowly than to run at full speed with lots of idle cycles.
David Lang