1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0-only 2*4882a593Smuzhiyunmenu "CPU Idle" 3*4882a593Smuzhiyun 4*4882a593Smuzhiyunconfig CPU_IDLE 5*4882a593Smuzhiyun bool "CPU idle PM support" 6*4882a593Smuzhiyun default y if ACPI || PPC_PSERIES 7*4882a593Smuzhiyun select CPU_IDLE_GOV_LADDER if (!NO_HZ && !NO_HZ_IDLE) 8*4882a593Smuzhiyun select CPU_IDLE_GOV_MENU if (NO_HZ || NO_HZ_IDLE) && !CPU_IDLE_GOV_TEO 9*4882a593Smuzhiyun help 10*4882a593Smuzhiyun CPU idle is a generic framework for supporting software-controlled 11*4882a593Smuzhiyun idle processor power management. It includes modular cross-platform 12*4882a593Smuzhiyun governors that can be swapped during runtime. 13*4882a593Smuzhiyun 14*4882a593Smuzhiyun If you're using an ACPI-enabled platform, you should say Y here. 15*4882a593Smuzhiyun 16*4882a593Smuzhiyunif CPU_IDLE 17*4882a593Smuzhiyun 18*4882a593Smuzhiyunconfig CPU_IDLE_MULTIPLE_DRIVERS 19*4882a593Smuzhiyun bool 20*4882a593Smuzhiyun 21*4882a593Smuzhiyunconfig CPU_IDLE_GOV_LADDER 22*4882a593Smuzhiyun bool "Ladder governor (for periodic timer tick)" 23*4882a593Smuzhiyun 24*4882a593Smuzhiyunconfig CPU_IDLE_GOV_MENU 25*4882a593Smuzhiyun bool "Menu governor (for tickless system)" 26*4882a593Smuzhiyun 27*4882a593Smuzhiyunconfig CPU_IDLE_GOV_TEO 28*4882a593Smuzhiyun bool "Timer events oriented (TEO) governor (for tickless systems)" 29*4882a593Smuzhiyun help 30*4882a593Smuzhiyun This governor implements a simplified idle state selection method 31*4882a593Smuzhiyun focused on timer events and does not do any interactivity boosting. 32*4882a593Smuzhiyun 33*4882a593Smuzhiyun Some workloads benefit from using it and it generally should be safe 34*4882a593Smuzhiyun to use. Say Y here if you are not happy with the alternatives. 35*4882a593Smuzhiyun 36*4882a593Smuzhiyunconfig CPU_IDLE_GOV_HALTPOLL 37*4882a593Smuzhiyun bool "Haltpoll governor (for virtualized systems)" 38*4882a593Smuzhiyun depends on KVM_GUEST 39*4882a593Smuzhiyun help 40*4882a593Smuzhiyun This governor implements haltpoll idle state selection, to be 41*4882a593Smuzhiyun used in conjunction with the haltpoll cpuidle driver, allowing 42*4882a593Smuzhiyun for polling for a certain amount of time before entering idle 43*4882a593Smuzhiyun state. 44*4882a593Smuzhiyun 45*4882a593Smuzhiyun Some virtualized workloads benefit from using it. 46*4882a593Smuzhiyun 47*4882a593Smuzhiyunconfig DT_IDLE_STATES 48*4882a593Smuzhiyun bool 49*4882a593Smuzhiyun 50*4882a593Smuzhiyunmenu "ARM CPU Idle Drivers" 51*4882a593Smuzhiyundepends on ARM || ARM64 52*4882a593Smuzhiyunsource "drivers/cpuidle/Kconfig.arm" 53*4882a593Smuzhiyunendmenu 54*4882a593Smuzhiyun 55*4882a593Smuzhiyunmenu "MIPS CPU Idle Drivers" 56*4882a593Smuzhiyundepends on MIPS 57*4882a593Smuzhiyunsource "drivers/cpuidle/Kconfig.mips" 58*4882a593Smuzhiyunendmenu 59*4882a593Smuzhiyun 60*4882a593Smuzhiyunmenu "POWERPC CPU Idle Drivers" 61*4882a593Smuzhiyundepends on PPC 62*4882a593Smuzhiyunsource "drivers/cpuidle/Kconfig.powerpc" 63*4882a593Smuzhiyunendmenu 64*4882a593Smuzhiyun 65*4882a593Smuzhiyunconfig HALTPOLL_CPUIDLE 66*4882a593Smuzhiyun tristate "Halt poll cpuidle driver" 67*4882a593Smuzhiyun depends on X86 && KVM_GUEST 68*4882a593Smuzhiyun default y 69*4882a593Smuzhiyun help 70*4882a593Smuzhiyun This option enables halt poll cpuidle driver, which allows to poll 71*4882a593Smuzhiyun before halting in the guest (more efficient than polling in the 72*4882a593Smuzhiyun host via halt_poll_ns for some scenarios). 73*4882a593Smuzhiyun 74*4882a593Smuzhiyunendif 75*4882a593Smuzhiyun 76*4882a593Smuzhiyunconfig ARCH_NEEDS_CPU_IDLE_COUPLED 77*4882a593Smuzhiyun def_bool n 78*4882a593Smuzhiyunendmenu 79