Re: So, what's the status on the recent patches here?

David Singleton
2006-08-22T05:20:02Z

On 8/21/06, Greg KH <greg@kroah.com> wrote:
> On Fri, Aug 18, 2006 at 11:10:02PM -0700, David Singleton wrote:
> > Oppoint could replace large pieces of the cpufreq code
> > in the kernel, most notably the policy and governor code, which I
> > believe belongs in user space in the power manager daemon.
> >
> > You'll notice that the oppoint-cpufreq.patch only touches
> > two files, cpufreq.c and cpufreq.h. It only creates two new
> > interfaces
> > to the cpufreq frequency scaling notifier lists to support driver pre
> > and post scaling routines, already supported in the kernel.
> >
> > The oppoint-x86-centrino.patch completes the replacement
> > of cpufreq code by introducing the transition routine to
> > change frequencies and creates operating points for the
> > centrino-speedstep processors already supported by Linux.
> >
> > (although I've recieved a note from Intel that the data I've copied
> > from the centrino-speedstep cpufreq tables is known to be inaccurate
> > and unsupported)
> >
> > This code could replace cpufreq code and simplify it quite a
> > bit in the process. The kernel drivers that support cpufreq
> > frequency
> > scaling would not have to be changed. Operating points for the rest
> > of the processors that support cpufreq would have to be created, but
> > as you can see it's quite a straight forward transformation from
> > a cpufreq table to a set of operating points for a processor.
>
> This only touches on the cpu frequency stuff. I am assuming that the
> current driver interface to the different power management states is
> acceptable to you?

Yes. The driver interface works perfectlly with the operating point design.
The power manager can simply set whatever operating point it wants the system
to be in and still have the flexibility to suspend individual devices through
the current driver interface. Drivers do not have be changed in any way
to operate correctly with the operating point model.

The cpufreq driver scaling code doesn't need to changed either. OpPoint
calls the same scaling routines throught the same notifier chain as
cpufreq does.

That's two of the big advantages to the OpPoint design,
the driver interace doesn't need to change and the existing driver frequency
scaling code doesn't need to change either.

Which makes sense since the operating point design is performing the same
functionality, just in a simpler manner.

I still have to write a power manager for this so all the
policy/class stuff
that's being discussed now can be plug-ins for the power manager. You'd
set you power management classes and policies up in the power manager,
wether its' performance, or energy efficiency, or thermal constraints,
or battery
constraints, and let it simply set operating states and handle
individual devices
as it sees fit.

That's really where all the policy/class code belongs, in the
power manager.
OpPoint just provides a simpler interface for the power manager. The operating
points are set by their name and the device control works just as it does today
through the sysfs interface.

David

>
> thanks,
>
> greg k-h
>