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    [W:0.026 / U:29.584 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site