-
- Downloads
cpuidle: Single/Global registration of idle states
This patch makes the cpuidle_states structure global (single copy) instead of per-cpu. The statistics needed on per-cpu basis by the governor are kept per-cpu. This simplifies the cpuidle subsystem as state registration is done by single cpu only. Having single copy of cpuidle_states saves memory. Rare case of asymmetric C-states can be handled within the cpuidle driver and architectures such as POWER do not have asymmetric C-states. Having single/global registration of all the idle states, dynamic C-state transitions on x86 are handled by the boot cpu. Here, the boot cpu would disable all the devices, re-populate the states and later enable all the devices, irrespective of the cpu that would receive the notification first. Reference: https://lkml.org/lkml/2011/4/25/83 Signed-off-by:Deepthi Dharwar <deepthi@linux.vnet.ibm.com> Signed-off-by:
Trinabh Gupta <g.trinabh@gmail.com> Tested-by:
Jean Pihet <j-pihet@ti.com> Reviewed-by:
Kevin Hilman <khilman@ti.com> Acked-by:
Arjan van de Ven <arjan@linux.intel.com> Acked-by:
Kevin Hilman <khilman@ti.com> Signed-off-by:
Len Brown <len.brown@intel.com>
Showing
- arch/arm/mach-at91/cpuidle.c 17 additions, 14 deletionsarch/arm/mach-at91/cpuidle.c
- arch/arm/mach-davinci/cpuidle.c 21 additions, 18 deletionsarch/arm/mach-davinci/cpuidle.c
- arch/arm/mach-exynos4/cpuidle.c 13 additions, 10 deletionsarch/arm/mach-exynos4/cpuidle.c
- arch/arm/mach-kirkwood/cpuidle.c 16 additions, 14 deletionsarch/arm/mach-kirkwood/cpuidle.c
- arch/arm/mach-omap2/cpuidle34xx.c 49 additions, 24 deletionsarch/arm/mach-omap2/cpuidle34xx.c
- arch/sh/kernel/cpu/shmobile/cpuidle.c 11 additions, 7 deletionsarch/sh/kernel/cpu/shmobile/cpuidle.c
- drivers/acpi/processor_driver.c 3 additions, 17 deletionsdrivers/acpi/processor_driver.c
- drivers/acpi/processor_idle.c 166 additions, 25 deletionsdrivers/acpi/processor_idle.c
- drivers/cpuidle/cpuidle.c 12 additions, 33 deletionsdrivers/cpuidle/cpuidle.c
- drivers/cpuidle/driver.c 25 additions, 0 deletionsdrivers/cpuidle/driver.c
- drivers/cpuidle/governors/ladder.c 17 additions, 11 deletionsdrivers/cpuidle/governors/ladder.c
- drivers/cpuidle/governors/menu.c 12 additions, 8 deletionsdrivers/cpuidle/governors/menu.c
- drivers/cpuidle/sysfs.c 2 additions, 1 deletiondrivers/cpuidle/sysfs.c
- drivers/idle/intel_idle.c 61 additions, 19 deletionsdrivers/idle/intel_idle.c
- include/acpi/processor.h 1 addition, 0 deletionsinclude/acpi/processor.h
- include/linux/cpuidle.h 13 additions, 6 deletionsinclude/linux/cpuidle.h
Loading
Please register or sign in to comment