| .. | .. |
|---|
| 1 | +# SPDX-License-Identifier: GPL-2.0-only |
|---|
| 1 | 2 | menu "CPU Idle" |
|---|
| 2 | 3 | |
|---|
| 3 | 4 | config CPU_IDLE |
|---|
| 4 | 5 | bool "CPU idle PM support" |
|---|
| 5 | 6 | default y if ACPI || PPC_PSERIES |
|---|
| 6 | 7 | select CPU_IDLE_GOV_LADDER if (!NO_HZ && !NO_HZ_IDLE) |
|---|
| 7 | | - select CPU_IDLE_GOV_MENU if (NO_HZ || NO_HZ_IDLE) |
|---|
| 8 | + select CPU_IDLE_GOV_MENU if (NO_HZ || NO_HZ_IDLE) && !CPU_IDLE_GOV_TEO |
|---|
| 8 | 9 | help |
|---|
| 9 | 10 | CPU idle is a generic framework for supporting software-controlled |
|---|
| 10 | 11 | idle processor power management. It includes modular cross-platform |
|---|
| .. | .. |
|---|
| 15 | 16 | if CPU_IDLE |
|---|
| 16 | 17 | |
|---|
| 17 | 18 | config CPU_IDLE_MULTIPLE_DRIVERS |
|---|
| 18 | | - bool |
|---|
| 19 | + bool |
|---|
| 19 | 20 | |
|---|
| 20 | 21 | config CPU_IDLE_GOV_LADDER |
|---|
| 21 | 22 | bool "Ladder governor (for periodic timer tick)" |
|---|
| 22 | 23 | |
|---|
| 23 | 24 | config CPU_IDLE_GOV_MENU |
|---|
| 24 | 25 | bool "Menu governor (for tickless system)" |
|---|
| 26 | + |
|---|
| 27 | +config 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 | + |
|---|
| 36 | +config 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. |
|---|
| 25 | 46 | |
|---|
| 26 | 47 | config DT_IDLE_STATES |
|---|
| 27 | 48 | bool |
|---|
| .. | .. |
|---|
| 41 | 62 | source "drivers/cpuidle/Kconfig.powerpc" |
|---|
| 42 | 63 | endmenu |
|---|
| 43 | 64 | |
|---|
| 65 | +config 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 | + |
|---|
| 44 | 74 | endif |
|---|
| 45 | 75 | |
|---|
| 46 | 76 | config ARCH_NEEDS_CPU_IDLE_COUPLED |
|---|