[RFC PATCH V4 0/5] cpuidle: Cleanup pm_idle and includedriver/cpuidle.c in-kernel

From: Trinabh Gupta
Date: Tue Mar 22 2011 - 08:32:32 EST


Changes in V4:
* Implemented cpuidle driver for xen. Earlier pm_idle
function pointer would be set to default idle. Now a cpuidle_driver
encapsulating the idle routine is cleanly registered for this
using cpuidle_register_driver API.

* Implemented a cpuidle driver for apm_cpu_idle() as part of
APM BIOS driver. Earlier APM BIOS driver would flip
pm_idle function pointer to apm_cpu_idle.

* This patch series applies on 2.6.38, and was tested on x86 system
with multiple sleep states.

Goal:
This patch series tries to achieve the goal of having cpuidle manage
all idle routine for x86. It removes pm_idle function pointer which
causes problems discussed at http://lkml.org/lkml/2009/8/28/43 and
http://lkml.org/lkml/2009/8/28/50.

V1 of this series is at https://lkml.org/lkml/2010/10/19/449,
V2 is at https://lkml.org/lkml/2011/1/13/98 and
V3 is at https://lkml.org/lkml/2011/2/8/73

---

Trinabh Gupta (5):
cpuidle: cpuidle driver for apm
cpuidle: driver for xen
cpuidle: default idle driver for x86
cpuidle: list based cpuidle driver registration and selection
cpuidle: Remove pm_idle pointer for x86


arch/x86/Kconfig | 2
arch/x86/kernel/apm_32.c | 75 ++++++-
arch/x86/kernel/process.c | 339 --------------------------------
arch/x86/kernel/process_32.c | 4
arch/x86/kernel/process_64.c | 4
arch/x86/xen/setup.c | 42 ++++
drivers/acpi/processor_idle.c | 2
drivers/cpuidle/Kconfig | 9 +
drivers/cpuidle/cpuidle.c | 50 ++++-
drivers/cpuidle/driver.c | 114 ++++++++++-
drivers/idle/Makefile | 1
drivers/idle/default_driver.c | 437 +++++++++++++++++++++++++++++++++++++++++
include/linux/cpuidle.h | 3
13 files changed, 707 insertions(+), 375 deletions(-)
create mode 100644 drivers/idle/default_driver.c

--
-Trinabh
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/