blob: c0aeedd66f022ae7f92492d220a14685707338fc [file] [log] [blame]
Thomas Gleixnerec8f24b2019-05-19 13:07:45 +01001# SPDX-License-Identifier: GPL-2.0-only
Saharab98e01a2013-07-03 17:49:55 +09002menu "CPU Idle"
Len Brown4f86d3a2007-10-03 18:58:00 -04003
Saharab98e01a2013-07-03 17:49:55 +09004config CPU_IDLE
Len Brown4f86d3a2007-10-03 18:58:00 -04005 bool "CPU idle PM support"
Benjamin Herrenschmidtaa491ad2012-02-22 16:04:24 +11006 default y if ACPI || PPC_PSERIES
Daniel Lezcanod6f346f2013-05-28 15:51:54 +00007 select CPU_IDLE_GOV_LADDER if (!NO_HZ && !NO_HZ_IDLE)
Rafael J. Wysockib26bf6a2019-01-04 12:30:47 +01008 select CPU_IDLE_GOV_MENU if (NO_HZ || NO_HZ_IDLE) && !CPU_IDLE_GOV_TEO
Len Brown4f86d3a2007-10-03 18:58:00 -04009 help
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.
13
len.brown@intel.com60555e32007-11-19 22:22:37 -050014 If you're using an ACPI-enabled platform, you should say Y here.
Len Brown4f86d3a2007-10-03 18:58:00 -040015
Daniel Lezcanod6f346f2013-05-28 15:51:54 +000016if CPU_IDLE
17
Daniel Lezcanobf4d1b52012-10-31 16:44:48 +000018config CPU_IDLE_MULTIPLE_DRIVERS
Krzysztof Kozlowski656b4e62019-11-21 04:19:12 +010019 bool
Daniel Lezcanobf4d1b52012-10-31 16:44:48 +000020
Len Brown4f86d3a2007-10-03 18:58:00 -040021config CPU_IDLE_GOV_LADDER
Daniel Lezcanod6f346f2013-05-28 15:51:54 +000022 bool "Ladder governor (for periodic timer tick)"
Len Brown4f86d3a2007-10-03 18:58:00 -040023
24config CPU_IDLE_GOV_MENU
Daniel Lezcanod6f346f2013-05-28 15:51:54 +000025 bool "Menu governor (for tickless system)"
Colin Cross4126c012012-05-07 17:57:41 -070026
Rafael J. Wysockib26bf6a2019-01-04 12:30:47 +010027config CPU_IDLE_GOV_TEO
28 bool "Timer events oriented (TEO) governor (for tickless systems)"
29 help
30 This governor implements a simplified idle state selection method
31 focused on timer events and does not do any interactivity boosting.
32
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.
35
Marcelo Tosatti2cffe9f2019-07-03 20:51:28 -030036config CPU_IDLE_GOV_HALTPOLL
37 bool "Haltpoll governor (for virtualized systems)"
38 depends on KVM_GUEST
39 help
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
43 state.
44
45 Some virtualized workloads benefit from using it.
46
Lorenzo Pieralisi9f14da32014-02-14 14:28:39 +000047config DT_IDLE_STATES
48 bool
49
Saharab98e01a2013-07-03 17:49:55 +090050menu "ARM CPU Idle Drivers"
Daniel Lezcano0e087042015-02-02 16:32:46 +010051depends on ARM || ARM64
Saharab98e01a2013-07-03 17:49:55 +090052source "drivers/cpuidle/Kconfig.arm"
53endmenu
Michal Simekbd2a3372013-06-04 07:17:39 +000054
Paul Burtond0508942014-04-14 16:25:29 +010055menu "MIPS CPU Idle Drivers"
56depends on MIPS
57source "drivers/cpuidle/Kconfig.mips"
58endmenu
59
Deepthi Dharwar962e7bd2014-01-14 16:26:02 +053060menu "POWERPC CPU Idle Drivers"
61depends on PPC
62source "drivers/cpuidle/Kconfig.powerpc"
63endmenu
64
Marcelo Tosattifa86ee92019-07-03 20:51:25 -030065config HALTPOLL_CPUIDLE
Krzysztof Kozlowski656b4e62019-11-21 04:19:12 +010066 tristate "Halt poll cpuidle driver"
67 depends on X86 && KVM_GUEST
68 default y
69 help
70 This option enables halt poll cpuidle driver, which allows to poll
71 before halting in the guest (more efficient than polling in the
72 host via halt_poll_ns for some scenarios).
Marcelo Tosattifa86ee92019-07-03 20:51:25 -030073
Rob Herringbe6a98d2012-10-12 12:45:34 -050074endif
Daniel Lezcanob39b0982013-06-11 08:09:45 +000075
76config ARCH_NEEDS_CPU_IDLE_COUPLED
77 def_bool n
Saharab98e01a2013-07-03 17:49:55 +090078endmenu