On Fri, 2008-06-27 at 15:18 -0400, Dave Jones wrote:
On Fri, Jun 27, 2008 at 05:13:24PM +0100, Richard Hughes wrote:
> At the moment we set:
> # CONFIG_CPU_FREQ_DEFAULT_GOV_PERFORMANCE is not set
> # CONFIG_CPU_FREQ_DEFAULT_GOV_ONDEMAND is not set
> # CONFIG_CPU_FREQ_DEFAULT_GOV_CONSERVATIVE is not set
> This is not ideal from a power-saving point of view.
> In an ideal world we would:
> * remove CONFIG_CPU_FREQ_GOV_CONSERVATIVE -- ondemand does a better job
> on all workloads
> * remove CONFIG_CPU_FREQ_GOV_USERSPACE -- we have nothing in userspace
> that needs this sort of control, and if we did, the latency would be
needed for the cpuspeed governor
Sure, I might have been a bit hasty in saying _remove_ - I don't really
care about old CPU types but I appreciate lots of people do.
> * remove CONFIG_CPU_FREQ_GOV_POWERSAVE -- ondemand
> throttles down to lowest, and is just a hardcoded state
> * compile into the kernel CONFIG_CPU_FREQ_GOV_ONDEMAND -- we really
> want to be running this on all systems that support it
> * set ONDEMAND or PERFORMANCE to default as USERSPACE is just changed
> to something else by cpuspeed. You really don't want to be using
> USERSPACE at all.
Not all CPUs are capable of running ondemand because of the latency they
incur during transitions.
Right, isn't the latency exported by the kernel? Surely it's a userspace
decision (policy) if the latency is acceptable? The little tool Matthew
and I prototyped yesterday allows an admin to tweak the latency they
want in the whole system, and depending on the latency acceptable,
different things like ALPM, ASPM and the governor are put in different
modes. Obviously these new switches help in powersaving (lots) but each
add appreciable latency which may be unacceptable.
> Matthew Garrett and I are working on a latency profile for
> management, and having all these modules potentially loaded is bad.
I don't follow this. Can you show whatever numbers you have that you're
basing this on ?
Well, not bad from a speed point of view, bad from a complexity view. If
we compile in ondemand, performance and userspace then we can leave it
up to policy in the system to decide what makes sense. The policy in
userspace can get the latency of the ondemand change and make a decision
Some of the logic in cpuspeed seems a little complex, and I'm wondering
if we need to be running a service like cpuspeed on a desktop laptop.