android_kernel_samsung_sm8650/drivers/cpuidle/Kconfig
Raghavendra Kakarla 0710af9a00 drivers: cpuidle: Add a simple governor for qcom chipsets
Add a simple governor for the QCOM chipsets which allows the
deeper LPMs more aggressively. Also it provides an interface to
tune the cpuidle parameters like latency and residency as required.

Change-Id: I240765bd0a188775cf84a858a5b7a4e7d58f4c60
Signed-off-by: Raghavendra Kakarla <quic_rkakarla@quicinc.com>
2023-06-18 23:21:18 -07:00

112 lines
3.2 KiB
Plaintext

# SPDX-License-Identifier: GPL-2.0-only
menu "CPU Idle"
config CPU_IDLE
bool "CPU idle PM support"
default y if ACPI || PPC_PSERIES
select CPU_IDLE_GOV_LADDER if (!NO_HZ && !NO_HZ_IDLE)
select CPU_IDLE_GOV_MENU if (NO_HZ || NO_HZ_IDLE) && !CPU_IDLE_GOV_TEO
help
CPU idle is a generic framework for supporting software-controlled
idle processor power management. It includes modular cross-platform
governors that can be swapped during runtime.
If you're using an ACPI-enabled platform, you should say Y here.
if CPU_IDLE
config CPU_IDLE_MULTIPLE_DRIVERS
bool
config CPU_IDLE_GOV_LADDER
bool "Ladder governor (for periodic timer tick)"
config CPU_IDLE_GOV_MENU
bool "Menu governor (for tickless system)"
config CPU_IDLE_GOV_TEO
bool "Timer events oriented (TEO) governor (for tickless systems)"
help
This governor implements a simplified idle state selection method
focused on timer events and does not do any interactivity boosting.
Some workloads benefit from using it and it generally should be safe
to use. Say Y here if you are not happy with the alternatives.
config CPU_IDLE_GOV_HALTPOLL
bool "Haltpoll governor (for virtualized systems)"
depends on KVM_GUEST
help
This governor implements haltpoll idle state selection, to be
used in conjunction with the haltpoll cpuidle driver, allowing
for polling for a certain amount of time before entering idle
state.
Some virtualized workloads benefit from using it.
config CPU_IDLE_GOV_QCOM_LPM
tristate "Qualcomm Technologies, Inc. CPU and Cluster governor"
depends on ARCH_QCOM
depends on ARM_PSCI_CPUIDLE
help
This governor implements effective cpu and cluster idle state
selection with help of scheduler inputs, cpu idle state prediction
and cluster idle state prediction algorithms.
The predicted sleep time, latency requirement for the
CPU and the idle state chosen based on the parameters are all
logged in the trace.
config CPU_IDLE_SIMPLE_GOV_QCOM_LPM
tristate "Qualcomm Technologies, Inc. CPU and Cluster simple governor"
depends on ARCH_QCOM
depends on ARM_PSCI_CPUIDLE
help
This governor allows the cpu and cluster to deeper idle states more aggressively
by reducing cpuidle parameters such as the entry, exit latencies and the residency.
This provides the provision to user to update cpuidle parameters so that it can
allow or restrict particular Idle state more aggressively.
config DT_IDLE_STATES
bool
config DT_IDLE_GENPD
depends on PM_GENERIC_DOMAINS_OF
bool
menu "ARM CPU Idle Drivers"
depends on ARM || ARM64
source "drivers/cpuidle/Kconfig.arm"
endmenu
menu "MIPS CPU Idle Drivers"
depends on MIPS
source "drivers/cpuidle/Kconfig.mips"
endmenu
menu "POWERPC CPU Idle Drivers"
depends on PPC
source "drivers/cpuidle/Kconfig.powerpc"
endmenu
menu "RISC-V CPU Idle Drivers"
depends on RISCV
source "drivers/cpuidle/Kconfig.riscv"
endmenu
config HALTPOLL_CPUIDLE
tristate "Halt poll cpuidle driver"
depends on X86 && KVM_GUEST
default y
help
This option enables halt poll cpuidle driver, which allows to poll
before halting in the guest (more efficient than polling in the
host via halt_poll_ns for some scenarios).
endif
config ARCH_NEEDS_CPU_IDLE_COUPLED
def_bool n
endmenu