RE: [patch 2/2] x86: Manage ENERGY_PERF_BIAS based on cpufreq governor- v2

From: Len Brown
Date: Thu Jun 03 2010 - 23:38:56 EST


> >-----Original Message-----
> >From: Dave Jones [mailto:davej@xxxxxxxxxx]

> >On Thu, Mar 04, 2010 at 03:14:56PM -0800, Venki Pallipadi wrote:
> >
> > > + if (!strncmp(gov->name, "performance", strlen("performance")))
> > > + epb_val = ENERGY_PERF_BIAS_PERF;
> > > + else if (!strncmp(gov->name, "powersave", strlen("powersave")))
> > > + epb_val = ENERGY_PERF_BIAS_POWER;
> > > + else
> > > + epb_val = ENERGY_PERF_BIAS_ONDEMAND;
> > > +
> > > + set_epb_on_cpu(epb_val, cpu);
> > > + return 0;
> >
> >hardcoding a list of cpufreq governors is kinda icky, but I don't have
> >a better solution. We'll just have to be mindful of it if we ever
> >get around to finally making performance/powersave personalities
> >of ondemand as was discussed years ago.
>
> Yes. In that case we will have to find some other way to tie this to
> user preference.

Lets cross that bridge when we come to it.

> >What if the governor is set to 'userspace' ?
> >powernowd/cpufreqd are sort of ondemand-done-in-userspace, but there
> >may also be other userspace governors we don't know about.
> >I suppose it's not catastrophic..
>
> Userspace/ondemand/conservative can all be at middle ground here as
> they are mostly used where user expects adaptive kind of behaviour.

Frankly, if somebody cares about power or performance,
they shouldn't be running powernowd/cpufreqd, and so
they should be blissfully ignorant and satisfied with the
default, which is 'balanced'.

> I did think about exporting this as a new tunable in /sys and let
> userspace deal with it. But, that doesn't help with having sane default
> values and users (background apps) may shoot themselves in the foot
> with it.

We really do need a central place for userspace to communicate
power/performance bias policy to the kernel -- and for kernel drivers
of all types to pick up that policy. I think that ideally
the sysfs interface should be generic, and that on systems with
this MSR, the MSR gets plugged into updates to that generic
interface.

I think that this driver exposing the MSR to cpufreq is useful,
but perhaps it is just a stepping stone to the generic I/F
that we really should implement...

Len Brown,
Intel Open Source Technology Center


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/