Actually this whole "CPU-idle" thing in the -hrt patchset is not as new as it might seem - the p-states driver of vanilla kernel (cpufreq) manages the c-states as well. There is however only one governor or strategy that lowers the c-state depending on how long the cpu was idle. So it goes through C1, C2 and so on until the lowest possible sleep state with time. This is called the "ladder" governor with -hrt now. The "menu" governor is new and estimates how long the cpu will be idle and puts the CPU in a c-state directly. So it can go to c4 without going through c1,c2,... before. If the estimate for the sleep period is very short or the cpu should not go lower than a particular c-state it will put the CPU in that c-state that fits the situation best.

IMHO it makes sense to divide p- and c-state management into different modules because this allows one to adjust power management more dynamically. I think this will be merged into the vanilla kernel somewhen in the future.

Peter


Frédéric BOITEUX wrote:
Le mer 20 jun 2007 14:01:56 CEST, Jean-Paul Lacquement
<[EMAIL PROTECTED]> a écrit :

What is this "menu" module you're talking about?

If you use the hrt1 patch with a 2.6.22rc5 kernel, then there are 2 new
modules for « CPU_IDLE » governors :

config CPU_IDLE
          CPU idle is a generic framework for supporting software-controlled
          idle processor power management.  It includes modular cross-platform
          governors that can be swapped during runtime.

          If you're using a mobile platform that supports CPU idle PM (e.g.
          an ACPI-capable notebook), you should say Y here.

config CPU_IDLE_GOV_LADDER
          This cpuidle governor promotes and demotes through the supported idle
          states using residency time and bus master activity as metrics.  This
          algorithm was originally introduced in the old ACPI processor driver.

config CPU_IDLE_GOV_MENU
          This cpuidle governor evaluates all available states and chooses the
          deepest state that meets all of the following constraints: BM 
activity,
          expected time until next timer interrupt, and last break event time
          delta.  It is designed to minimize power consumption.  Currently
          dynticks is required.

So to have C-states available in powertop, you must enable CPU_IDLE* kernel 
options and modprobe either ladder or menu (new) modules generated, the latter 
being the best for power consumption...

        Fred.


_______________________________________________
Power mailing list
[email protected]
http://www.bughost.org/mailman/listinfo/power


_______________________________________________
Power mailing list
[email protected]
http://www.bughost.org/mailman/listinfo/power

Reply via email to