From: trinabh@linux.vnet.ibm.com (Trinabh Gupta)
To: linux-arm-kernel@lists.infradead.org
Subject: [RFC PATCH V3 0/4] cpuidle: global registration of idle states with per-cpu statistics
Date: Wed, 20 Apr 2011 12:25:15 +0530 [thread overview]
Message-ID: <20110420065445.332.13688.stgit@tringupt.in.ibm.com> (raw)
The core change in this series 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. As a result of these changes, there is single
copy of cpuidle_states structure and single registration done by one
cpu. The low level driver is free to set per-cpu driver data on
each cpu if needed using the cpuidle_set_statedata() as the case
today. Only in very rare cases asymmetric C-states exist which can be
handled within the cpuidle driver. Most architectures do not have
asymmetric C-states.
This patch series along with Len Brown's pm_idle() cleanup
(ref:https://lkml.org/lkml/2011/4/2/8) will simplify the cpuidle framework
and make it easy to port to other architectures like POWER.
References:
https://lkml.org/lkml/2011/2/10/37
https://lkml.org/lkml/2011/3/25/52
First two patches in the series facilitate splitting of cpuidle_states
and cpuidle_device structure and next two patches do the actual split,
change the API's and make existing code follow the changed API.
[1/4] - Move the idle residency accounting part from cpuidle.c to
the respective low level drivers, so that the accounting can
be accurately maintained if the driver decides to demote the
chosen (suggested) by the governor.
[2/4] - removes the cpuidle_device()->prepare API since is is not
widely used and the only use case was to allow software
demotion using CPUIDLE_FLAG_IGNORE flag. Both these
functions can be absorbed within the cpuidle back-end
driver ad hence deprecating the prepare routine and the
CPUIDLE_FLAG_IGNORE flag.
- Ref: https://lkml.org/lkml/2011/3/25/52
[3/4] - Splits the usage statistics (read/write) part out of
cpuidle_state structure, so that the states can become read
only and hence made global.
[4/4] - most APIs will now need to pass pointer to both global
cpuidle_driver and per-cpu cpuidle_device structure.
Version 1 is at https://lkml.org/lkml/2011/3/22/161
Version 2 is at https://lkml.org/lkml/2011/4/11/32
Changes from V2:
1. Enabled global registration for arm at91_idle_driver,
davinci_idle_driver, kirkwood_idle_driver, omap3_idle_driver cpuidle
drivers. Enabled global registration for x86 intel_idle_driver also.
2. Made ladder governor follow new changed API. Thus both menu and ladder
governors work with these changes.
This patch series applies on top of 2.6.39-rc2 and is tested on x86 Nehalem
system with multiple ACPI C-States with both acpi_idle and intel_idle
cpuidle drivers. Note that this code is not tested for arm yet.
Thanks,
-Trinabh
next reply other threads:[~2011-04-20 6:55 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2011-04-20 6:55 Trinabh Gupta [this message]
2011-04-20 6:55 ` [RFC PATCH V3 1/4] cpuidle: Move dev->last_residency update to driver enter routine; remove dev->last_state Trinabh Gupta
2011-04-20 17:27 ` [linux-pm] " Kevin Hilman
2011-04-21 4:42 ` Trinabh Gupta
2011-04-20 6:55 ` [RFC PATCH V3 2/4] cpuidle: Remove CPUIDLE_FLAG_IGNORE and dev->prepare() Trinabh Gupta
2011-04-20 6:56 ` [RFC PATCH V3 3/4] Split cpuidle_state structure and move per-cpu statistics fields Trinabh Gupta
2011-04-20 6:56 ` [RFC PATCH V3 4/4] cpuidle: Single/Global registration of idle states Trinabh Gupta
2011-04-20 17:33 ` [linux-pm] " Kevin Hilman
2011-04-21 4:53 ` Trinabh Gupta
2011-04-22 23:06 ` Kevin Hilman
2011-04-25 12:00 ` Trinabh Gupta
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20110420065445.332.13688.stgit@tringupt.in.ibm.com \
--to=trinabh@linux.vnet.ibm.com \
--cc=linux-arm-kernel@lists.infradead.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).