Messages in this thread | | | From | Trinabh Gupta <> | Subject | [RFC PATCH V3 0/3] cpuidle: Cleanup pm_idle and include driver/cpuidle.c in-kernel | Date | Tue, 08 Feb 2011 16:21:46 +0530 |
| |
V2 did not support architectures other than x86 that use pm_idle. With this patch, architectures that use pm_idle (other than x86) can continue to do so and co-exist. They can be incrementally converted to directly call into cpuidle instead of pm_idle pointer.
Changes in V3:
* Re-arranged code in driver/cpuidle.c to allow non-x86 architectures to continue to use pm-idle pointer until cpuidle.c is included into the kernel for those architectures.
* This patch series tries to maintain pm_idle pointer for non-x86 archs so that the interface does not change at this point. These archs can continue to set pm_idle=cpuidle_idle_call() if they want to use cpuidle or stick to the present boot process.
* After wider review and testing we could incrementally convert other archs (including arm, blackfin, cris, ia64, m32r, m68knommu, microblaze, mn10300, sh, sparc) also to use cpuidle.c implicitly.
* This patch series applies on 2.6.37, and was tested on x86 system with multiple sleep states. It was also compile tested on ARM, boot tested on POWER6.
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 and V2 is at https://lkml.org/lkml/2011/1/13/98
ToDo: * Force default idle for xen in xen/setup.c * This series applies on 2.6.37, would have to be rebased to 2.6.38-rc3
---
Trinabh Gupta (3): cpuidle: default idle driver for x86 cpuidle: list based cpuidle driver registration and selection cpuidle: Remove pm_idle pointer for x86
arch/x86/kernel/process.c | 340 ------------------------------- arch/x86/kernel/process_32.c | 4 arch/x86/kernel/process_64.c | 4 arch/x86/xen/setup.c | 1 drivers/acpi/processor_idle.c | 2 drivers/cpuidle/Kconfig | 9 + drivers/cpuidle/cpuidle.c | 43 +++- drivers/cpuidle/driver.c | 112 ++++++++++ drivers/idle/Makefile | 2 drivers/idle/default_driver.c | 453 +++++++++++++++++++++++++++++++++++++++++ include/linux/cpuidle.h | 3 11 files changed, 613 insertions(+), 360 deletions(-) create mode 100644 drivers/idle/default_driver.c
-- Trinabh
| |