]> git.baikalelectronics.ru Git - kernel.git/commit
cpuidle: Add new macro to enter a retention idle state
authorPrashanth Prakash <pprakash@codeaurora.org>
Wed, 15 Nov 2017 17:11:49 +0000 (10:11 -0700)
committerCatalin Marinas <catalin.marinas@arm.com>
Tue, 2 Jan 2018 13:48:55 +0000 (13:48 +0000)
commitfb22c864ac4f201683e4fb668ee1023d984b50df
treed67d11acbee21cbc202701cba4150ccb2b659a20
parent92ba2b7bf69498c071e0b83147a8aa4c0a8168cf
cpuidle: Add new macro to enter a retention idle state

If a CPU is entering a low power idle state where it doesn't lose any
context, then there is no need to call cpu_pm_enter()/cpu_pm_exit().
Add a new macro(CPU_PM_CPU_IDLE_ENTER_RETENTION) to be used by cpuidle
drivers when they are entering retention state. By not calling
cpu_pm_enter and cpu_pm_exit we reduce the latency involved in
entering and exiting the retention idle states.

CPU_PM_CPU_IDLE_ENTER_RETENTION assumes that no state is lost and
hence CPU PM notifiers will not be called. We may need a broader
change if we need to support partial retention states effeciently.

On ARM64 based Qualcomm Server Platform we measured below overhead for
for calling cpu_pm_enter and cpu_pm_exit for retention states.

workload: stress --hdd #CPUs --hdd-bytes 32M  -t 30
        Average overhead of cpu_pm_enter - 1.2us
        Average overhead of cpu_pm_exit  - 3.1us

Acked-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Acked-by: Sudeep Holla <sudeep.holla@arm.com>
Signed-off-by: Prashanth Prakash <pprakash@codeaurora.org>
Signed-off-by: Catalin Marinas <catalin.marinas@arm.com>
include/linux/cpuidle.h