Loading...
1# SPDX-License-Identifier: GPL-2.0-only
2menu "CPU Idle"
3
4config CPU_IDLE
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
9 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
14 If you're using an ACPI-enabled platform, you should say Y here.
15
16if CPU_IDLE
17
18config CPU_IDLE_MULTIPLE_DRIVERS
19 bool
20
21config CPU_IDLE_GOV_LADDER
22 bool "Ladder governor (for periodic timer tick)"
23
24config CPU_IDLE_GOV_MENU
25 bool "Menu governor (for tickless system)"
26
27config 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
36config 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
47config DT_IDLE_STATES
48 bool
49
50config DT_IDLE_GENPD
51 depends on PM_GENERIC_DOMAINS_OF
52 bool
53
54menu "ARM CPU Idle Drivers"
55depends on ARM || ARM64
56source "drivers/cpuidle/Kconfig.arm"
57endmenu
58
59menu "MIPS CPU Idle Drivers"
60depends on MIPS
61source "drivers/cpuidle/Kconfig.mips"
62endmenu
63
64menu "POWERPC CPU Idle Drivers"
65depends on PPC
66source "drivers/cpuidle/Kconfig.powerpc"
67endmenu
68
69menu "RISC-V CPU Idle Drivers"
70depends on RISCV
71source "drivers/cpuidle/Kconfig.riscv"
72endmenu
73
74config HALTPOLL_CPUIDLE
75 tristate "Halt poll cpuidle driver"
76 depends on X86 && KVM_GUEST
77 select CPU_IDLE_GOV_HALTPOLL
78 default y
79 help
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).
83
84endif
85
86config ARCH_NEEDS_CPU_IDLE_COUPLED
87 def_bool n
88endmenu
1# SPDX-License-Identifier: GPL-2.0-only
2menu "CPU Idle"
3
4config CPU_IDLE
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
9 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
14 If you're using an ACPI-enabled platform, you should say Y here.
15
16if CPU_IDLE
17
18config CPU_IDLE_MULTIPLE_DRIVERS
19 bool
20
21config CPU_IDLE_GOV_LADDER
22 bool "Ladder governor (for periodic timer tick)"
23
24config CPU_IDLE_GOV_MENU
25 bool "Menu governor (for tickless system)"
26
27config 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
36config 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
47config DT_IDLE_STATES
48 bool
49
50menu "ARM CPU Idle Drivers"
51depends on ARM || ARM64
52source "drivers/cpuidle/Kconfig.arm"
53endmenu
54
55menu "MIPS CPU Idle Drivers"
56depends on MIPS
57source "drivers/cpuidle/Kconfig.mips"
58endmenu
59
60menu "POWERPC CPU Idle Drivers"
61depends on PPC
62source "drivers/cpuidle/Kconfig.powerpc"
63endmenu
64
65config HALTPOLL_CPUIDLE
66 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).
73
74endif
75
76config ARCH_NEEDS_CPU_IDLE_COUPLED
77 def_bool n
78endmenu