lkml.org 
[lkml]   [2011]   [Mar]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [RFC PATCH V1 0/2] cpuidle: global registration of idle states with per-cpu statistics
* Len Brown <lenb@kernel.org> [2011-03-25 03:28:59]:

> On Tue, 22 Mar 2011, Trinabh Gupta wrote:
>
> > This patch series is an early RFC to discuss the feasibility of
> > avoiding registering of idle states from each cpu.
> >
> > The core change is to split the cpuidle_device structure into parts
> > that can be global and parts that has to remain per-cpu. The per-cpu
> > pieces are mostly generic statistics that can be independent of
> > current running driver.
> >
> > Motivation:
> > * Simplify the cpuidle subsystem framework and have
> > registration/unregistration done by single cpu.
> >
> > * Minimise the data structure that needs to be maintained for multiple
> > cpuidle drivers
> >
> > * Reference: https://lkml.org/lkml/2011/2/10/37
> >
> > Advantages:
> > * Make the cpuidle framework simple for most use cases where C-States
> > are symmetric. In case there are asymmetric C-States detected,
> > fallback mechanism should be incorporated to maintain the system
> > functional
> > https://lkml.org/lkml/2011/2/10/257
> > https://lkml.org/lkml/2011/2/10/37
> >
> > * Non x86 archs that does not have asymmetric C-States like POWER, may
> > not need the fallback mechanism and hence the framework will be
> > simple for most use cases.
> >
> > Disadvantages:
> > * Asymmetric C-States are part of x86 ACPI specification. Incorrect
> > handling may functionally affect the system
>
> I think this is a non-issue.

Hi Len,

Thanks for the confirmation. This gives us the right direction to
proceed with the cleanup.

> > * Incorporating per-cpu masks for each state to allow/dis-allow global
> > states on subset of CPUs may result in an implementation that is
> > not better than current solution of having per-cpu states.
>
> I don't think this is needed.
>
> > This patch series applies on top of the pm_idle cleanup patch
> > https://lkml.org/lkml/2011/3/22/150 (cpuidle: Cleanup pm_idle and
> > include driver/cpuidle.c in-kernel)
> >
> > This patch series is tested on x86 Nehalem system with multiple ACPI
> > C-States.
> >
> > This patch series has limitations of not handling multiple driver
> > registration and switching between drivers on all CPUs mainly due to
> > incomplete handling of per-cpu enable/disable and driver_data.
>
> I think this series is more important than the feature of multiple
> driver/system support, and thus should come first.

Removing pm_idle() gets us to the situation where we have to support
multiple registration to allow default_idle driver to register and do
mwait. Your cleanup patch to x86 idle will make the transition much
simple. Lets us have removal of pm_idle() and removal of per-cpu
registration in the same patch series as the next step.

--Vaidy



\
 
 \ /
  Last update: 2011-03-25 18:23    [from the cache]
©2003-2011 Jasper Spaans