Re: [v8 PATCH 2/8]: cpuidle: implement a list based approach to register a set of idle routines.
From: Arun R Bharadwaj <hidden>
Date: 2009-10-09 09:40:22
Also in:
linux-acpi, linux-arch, lkml
* Peter Zijlstra [off-list ref] [2009-10-08 14:25:37]:
On Thu, 2009-10-08 at 17:31 +0530, Arun R Bharadwaj wrote:quoted
quoted
Uhm, no, it would mean ACPI putting its idle routines on the same level as all others.Putting them all on the same level would mean, we need an enable/disable routine to enable only the currently active routines.What's this enable/disable stuff about?quoted
Also, the way governor works is that, it assumes that idle routines are indexed in the increasing order of power benefit that can be got out of the state. So this would get messed up.Right, which is why I initially had a power-savings field in my proposal, so it could weight the power savings vs the wakeup latency. http://lkml.org/lkml/2009/8/27/159 There it was said that was exactly what these governors were doing, seems its not.quoted
quoted
Sounds like something is wrong alright. If you can register an idle routine you should be able to unregister it too.Yes, we can register and unregister in a clean way now. Consider this. We have a set of routines A, B, C currently registered. Now a module comes and registers D and E, and later on at some point of time wants to unregister. So how do you keep track of what all idle routines the module registered and unregister only those? Best way to do that is a stack, which is how I have currently implemented.Right, so destroy that inner set thing, that way we only have one left ;-)
I'm not convinced with your argument. Why dont we do this incrementally. Right now, this set of sets mechanism works fine and doesn't look like it has any obvious flaws in it. We have a clean register/unregister mechanism which solves all the earlier problems we started out to solve. We can gradually build on this and try to come up with a single set of idle states for a governor to choose from. thanks, arun