Kconfig 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. # SPDX-License-Identifier: GPL-2.0-only
  2. menu "CPU Idle"
  3. config CPU_IDLE
  4. bool "CPU idle PM support"
  5. default y if ACPI || PPC_PSERIES
  6. select CPU_IDLE_GOV_LADDER if (!NO_HZ && !NO_HZ_IDLE)
  7. select CPU_IDLE_GOV_MENU if (NO_HZ || NO_HZ_IDLE) && !CPU_IDLE_GOV_TEO
  8. help
  9. CPU idle is a generic framework for supporting software-controlled
  10. idle processor power management. It includes modular cross-platform
  11. governors that can be swapped during runtime.
  12. If you're using an ACPI-enabled platform, you should say Y here.
  13. if CPU_IDLE
  14. config CPU_IDLE_MULTIPLE_DRIVERS
  15. bool
  16. config CPU_IDLE_GOV_LADDER
  17. bool "Ladder governor (for periodic timer tick)"
  18. config CPU_IDLE_GOV_MENU
  19. bool "Menu governor (for tickless system)"
  20. config CPU_IDLE_GOV_TEO
  21. bool "Timer events oriented (TEO) governor (for tickless systems)"
  22. help
  23. This governor implements a simplified idle state selection method
  24. focused on timer events and does not do any interactivity boosting.
  25. Some workloads benefit from using it and it generally should be safe
  26. to use. Say Y here if you are not happy with the alternatives.
  27. config CPU_IDLE_GOV_HALTPOLL
  28. bool "Haltpoll governor (for virtualized systems)"
  29. depends on KVM_GUEST
  30. help
  31. This governor implements haltpoll idle state selection, to be
  32. used in conjunction with the haltpoll cpuidle driver, allowing
  33. for polling for a certain amount of time before entering idle
  34. state.
  35. Some virtualized workloads benefit from using it.
  36. config CPU_IDLE_GOV_QCOM_LPM
  37. tristate "Qualcomm Technologies, Inc. CPU and Cluster governor"
  38. depends on ARCH_QCOM
  39. depends on ARM_PSCI_CPUIDLE
  40. help
  41. This governor implements effective cpu and cluster idle state
  42. selection with help of scheduler inputs, cpu idle state prediction
  43. and cluster idle state prediction algorithms.
  44. The predicted sleep time, latency requirement for the
  45. CPU and the idle state chosen based on the parameters are all
  46. logged in the trace.
  47. config CPU_IDLE_SIMPLE_GOV_QCOM_LPM
  48. tristate "Qualcomm Technologies, Inc. CPU and Cluster simple governor"
  49. depends on ARCH_QCOM
  50. depends on ARM_PSCI_CPUIDLE
  51. help
  52. This governor allows the cpu and cluster to deeper idle states more aggressively
  53. by reducing cpuidle parameters such as the entry, exit latencies and the residency.
  54. This provides the provision to user to update cpuidle parameters so that it can
  55. allow or restrict particular Idle state more aggressively.
  56. config DT_IDLE_STATES
  57. bool
  58. config DT_IDLE_GENPD
  59. depends on PM_GENERIC_DOMAINS_OF
  60. bool
  61. menu "ARM CPU Idle Drivers"
  62. depends on ARM || ARM64
  63. source "drivers/cpuidle/Kconfig.arm"
  64. endmenu
  65. menu "MIPS CPU Idle Drivers"
  66. depends on MIPS
  67. source "drivers/cpuidle/Kconfig.mips"
  68. endmenu
  69. menu "POWERPC CPU Idle Drivers"
  70. depends on PPC
  71. source "drivers/cpuidle/Kconfig.powerpc"
  72. endmenu
  73. menu "RISC-V CPU Idle Drivers"
  74. depends on RISCV
  75. source "drivers/cpuidle/Kconfig.riscv"
  76. endmenu
  77. config HALTPOLL_CPUIDLE
  78. tristate "Halt poll cpuidle driver"
  79. depends on X86 && KVM_GUEST
  80. default y
  81. help
  82. This option enables halt poll cpuidle driver, which allows to poll
  83. before halting in the guest (more efficient than polling in the
  84. host via halt_poll_ns for some scenarios).
  85. endif
  86. config ARCH_NEEDS_CPU_IDLE_COUPLED
  87. def_bool n
  88. endmenu