[linux-pm] PowerOp Design and working patch

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Jul 29, 2006, at 3:09 PM, Greg KH wrote:

> On Fri, Jul 28, 2006 at 10:12:26PM -0700, david singleton wrote:
>>
>> Greg,
>> 	perhaps I need to back up a bit.  I wasn't submitting these patches
>> for inclusion into Linux.  I was presenting them to the people
>> discussing
>> how power management might evolve in Linux.
>
> That's fine, but you should at least post them so we can read and
> comment on them from within our email clients then :)
>
> And also by breaking up the patches into small logical changes, it 
> helps
> us to understand what they are doing and would allow us to evaluate 
> them
> much better.
>
> thanks,
>
> greg k-h
>

        Greg,
                 the three patches I just sent,  meant to send this 
first,
         describe a concept called power op that
         shows how the various power management infrastructures in
         Linux could be unified and simplified.  This email describes
         the concept of what power op is trying to do and how it works.

                 The following emails break a prototype patch into
         three logical parts.  The first patch is the powerop-core.patch
         that adds support for an operating point in the standard linux
         power management infrastructure (CONFIG_PM) and adds a new
         function to perform transitioning to operating points other
         than suspend to memory or disk.

                 The second patch adds the cpufreq portion of the patch
         that makes cpufreq table a set of operating points.

                 The third patch adds some operating points for
         the centrino-speedstep (the notebook I'm doing the prototype on)
         and a centrino specific transition function.

                 The goal of these patches is not to show how the
         concept of supported operating points should be implemented,
         rather its intended to show that they can be unified and
         greatly simplified.

                 All the power management infrastructures operate on
         what can be conceptualized as an operating point.  Once they
         get down to the point where they start controlling power, 
frequency
         or voltage, they are transitioning from one operating point
         to another.  They all also follow the same steps to transition
         from one operating point to another.

                 Powerop uses the traditional power management interface
         of /sys/power/state but changes it a bit. When it's read it 
shows
         the current operating point of the system.  Powerop uses a 
second
         sysfs file to present the list of supported operating points, 
their
         name, frequency, voltage and description,  to the user.

                 The user sets the operating point of the system by 
writing
         the name of the operating point into the /sys/power/state file.

                 The goal of powerop is to both unify and simplify the
         different power management infrastructures.  It does this
         by treating all supported states the system can be in as
         different operating points that can be simply transitioned
         to via the name of the operating point.

                 It simplifies power management by following the CPUFREQ
         concept of a vendor specified and validated table of supported
         operating points.  In CPUFREQ the user is not allowed to
         set the frequency or voltage of an operating point that might
         hang the system, either inadverdantly or maliciously.

                 It also simplifies the code  by putting all the 
decisions
         about when to transition to a new operating point in the
         hands of the user.  With this simple example patch the user
         can manually switch between all the supported states of the
         centrino speedstep.


                 The powerop-core.patch has more details in the
         Documentation/power/power.txt file.


David



[Index of Archives]     [Linux ACPI]     [Netdev]     [Ethernet Bridging]     [Linux Wireless]     [CPU Freq]     [Kernel Newbies]     [Fedora Kernel]     [Security]     [Linux for Hams]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux Admin]     [Samba]

  Powered by Linux