1 # SPDX-License-Identifier: GPL-2.0-only
5 bool "CPU idle PM support"
6 default y if ACPI || PPC_PSERIES
7 select CPU_IDLE_GOV_LADDER if (!NO_HZ && !NO_HZ_IDLE)
8 select CPU_IDLE_GOV_MENU if (NO_HZ || NO_HZ_IDLE) && !CPU_IDLE_GOV_TEO
10 CPU idle is a generic framework for supporting software-controlled
11 idle processor power management. It includes modular cross-platform
12 governors that can be swapped during runtime.
14 If you're using an ACPI-enabled platform, you should say Y here.
18 config CPU_IDLE_MULTIPLE_DRIVERS
21 config CPU_IDLE_GOV_LADDER
22 bool "Ladder governor (for periodic timer tick)"
24 config CPU_IDLE_GOV_MENU
25 bool "Menu governor (for tickless system)"
27 config CPU_IDLE_GOV_TEO
28 bool "Timer events oriented (TEO) governor (for tickless systems)"
30 This governor implements a simplified idle state selection method
31 focused on timer events and does not do any interactivity boosting.
33 Some workloads benefit from using it and it generally should be safe
34 to use. Say Y here if you are not happy with the alternatives.
36 config CPU_IDLE_GOV_HALTPOLL
37 bool "Haltpoll governor (for virtualized systems)"
40 This governor implements haltpoll idle state selection, to be
41 used in conjunction with the haltpoll cpuidle driver, allowing
42 for polling for a certain amount of time before entering idle
45 Some virtualized workloads benefit from using it.
51 depends on PM_GENERIC_DOMAINS_OF
54 menu "ARM CPU Idle Drivers"
55 depends on ARM || ARM64
56 source "drivers/cpuidle/Kconfig.arm"
59 menu "MIPS CPU Idle Drivers"
61 source "drivers/cpuidle/Kconfig.mips"
64 menu "POWERPC CPU Idle Drivers"
66 source "drivers/cpuidle/Kconfig.powerpc"
69 menu "RISC-V CPU Idle Drivers"
71 source "drivers/cpuidle/Kconfig.riscv"
74 config HALTPOLL_CPUIDLE
75 tristate "Halt poll cpuidle driver"
76 depends on X86 && KVM_GUEST
77 select CPU_IDLE_GOV_HALTPOLL
80 This option enables halt poll cpuidle driver, which allows to poll
81 before halting in the guest (more efficient than polling in the
82 host via halt_poll_ns for some scenarios).
86 config ARCH_NEEDS_CPU_IDLE_COUPLED