0001 # SPDX-License-Identifier: GPL-2.0-only
0002 menu "CPU Idle"
0003
0004 config CPU_IDLE
0005 bool "CPU idle PM support"
0006 default y if ACPI || PPC_PSERIES
0007 select CPU_IDLE_GOV_LADDER if (!NO_HZ && !NO_HZ_IDLE)
0008 select CPU_IDLE_GOV_MENU if (NO_HZ || NO_HZ_IDLE) && !CPU_IDLE_GOV_TEO
0009 help
0010 CPU idle is a generic framework for supporting software-controlled
0011 idle processor power management. It includes modular cross-platform
0012 governors that can be swapped during runtime.
0013
0014 If you're using an ACPI-enabled platform, you should say Y here.
0015
0016 if CPU_IDLE
0017
0018 config CPU_IDLE_MULTIPLE_DRIVERS
0019 bool
0020
0021 config CPU_IDLE_GOV_LADDER
0022 bool "Ladder governor (for periodic timer tick)"
0023
0024 config CPU_IDLE_GOV_MENU
0025 bool "Menu governor (for tickless system)"
0026
0027 config CPU_IDLE_GOV_TEO
0028 bool "Timer events oriented (TEO) governor (for tickless systems)"
0029 help
0030 This governor implements a simplified idle state selection method
0031 focused on timer events and does not do any interactivity boosting.
0032
0033 Some workloads benefit from using it and it generally should be safe
0034 to use. Say Y here if you are not happy with the alternatives.
0035
0036 config CPU_IDLE_GOV_HALTPOLL
0037 bool "Haltpoll governor (for virtualized systems)"
0038 depends on KVM_GUEST
0039 help
0040 This governor implements haltpoll idle state selection, to be
0041 used in conjunction with the haltpoll cpuidle driver, allowing
0042 for polling for a certain amount of time before entering idle
0043 state.
0044
0045 Some virtualized workloads benefit from using it.
0046
0047 config DT_IDLE_STATES
0048 bool
0049
0050 config DT_IDLE_GENPD
0051 depends on PM_GENERIC_DOMAINS_OF
0052 bool
0053
0054 menu "ARM CPU Idle Drivers"
0055 depends on ARM || ARM64
0056 source "drivers/cpuidle/Kconfig.arm"
0057 endmenu
0058
0059 menu "MIPS CPU Idle Drivers"
0060 depends on MIPS
0061 source "drivers/cpuidle/Kconfig.mips"
0062 endmenu
0063
0064 menu "POWERPC CPU Idle Drivers"
0065 depends on PPC
0066 source "drivers/cpuidle/Kconfig.powerpc"
0067 endmenu
0068
0069 menu "RISC-V CPU Idle Drivers"
0070 depends on RISCV
0071 source "drivers/cpuidle/Kconfig.riscv"
0072 endmenu
0073
0074 config HALTPOLL_CPUIDLE
0075 tristate "Halt poll cpuidle driver"
0076 depends on X86 && KVM_GUEST
0077 default y
0078 help
0079 This option enables halt poll cpuidle driver, which allows to poll
0080 before halting in the guest (more efficient than polling in the
0081 host via halt_poll_ns for some scenarios).
0082
0083 endif
0084
0085 config ARCH_NEEDS_CPU_IDLE_COUPLED
0086 def_bool n
0087 endmenu