369 lines · 11.4 KB · Text
RawDownload
# SPDX-License-Identifier: GPL-2.0-onlymenu "CPU Frequency scaling" config CPU_FREQ	bool "CPU Frequency scaling"	help	  CPU Frequency scaling allows you to change the clock speed of 	  CPUs on the fly. This is a nice method to save power, because 	  the lower the CPU clock speed, the less power the CPU consumes. 	  Note that this driver doesn't automatically change the CPU	  clock speed, you need to either enable a dynamic cpufreq governor	  (see below) after boot, or use a userspace tool. 	  For details, take a look at	  <file:Documentation/admin-guide/pm/cpufreq.rst>. 	  If in doubt, say N. if CPU_FREQ config CPU_FREQ_GOV_ATTR_SET	bool config CPU_FREQ_GOV_COMMON	select CPU_FREQ_GOV_ATTR_SET	select IRQ_WORK	bool config CPU_FREQ_STAT	bool "CPU frequency transition statistics"	help	  Export CPU frequency statistics information through sysfs. 	  If in doubt, say N. choice	prompt "Default CPUFreq governor"	default CPU_FREQ_DEFAULT_GOV_USERSPACE if ARM_SA1110_CPUFREQ	default CPU_FREQ_DEFAULT_GOV_SCHEDUTIL if ARM64 || ARM	default CPU_FREQ_DEFAULT_GOV_SCHEDUTIL if (X86_INTEL_PSTATE || X86_AMD_PSTATE) && SMP	default CPU_FREQ_DEFAULT_GOV_PERFORMANCE	help	  This option sets which CPUFreq governor shall be loaded at	  startup. If in doubt, use the default setting. config CPU_FREQ_DEFAULT_GOV_PERFORMANCE	bool "performance"	select CPU_FREQ_GOV_PERFORMANCE	help	  Use the CPUFreq governor 'performance' as default. This sets	  the frequency statically to the highest frequency supported by	  the CPU. config CPU_FREQ_DEFAULT_GOV_POWERSAVE	bool "powersave"	select CPU_FREQ_GOV_POWERSAVE	help	  Use the CPUFreq governor 'powersave' as default. This sets	  the frequency statically to the lowest frequency supported by	  the CPU. config CPU_FREQ_DEFAULT_GOV_USERSPACE	bool "userspace"	select CPU_FREQ_GOV_USERSPACE	help	  Use the CPUFreq governor 'userspace' as default. This allows	  you to set the CPU frequency manually or when a userspace 	  program shall be able to set the CPU dynamically without having	  to enable the userspace governor manually. config CPU_FREQ_DEFAULT_GOV_ONDEMAND	bool "ondemand"	depends on !(X86_INTEL_PSTATE && SMP)	select CPU_FREQ_GOV_ONDEMAND	select CPU_FREQ_GOV_PERFORMANCE	help	  Use the CPUFreq governor 'ondemand' as default. This allows	  you to get a full dynamic frequency capable system by simply	  loading your cpufreq low-level hardware driver.	  Be aware that not all cpufreq drivers support the ondemand	  governor. If unsure have a look at the help section of the	  driver. Fallback governor will be the performance governor. config CPU_FREQ_DEFAULT_GOV_CONSERVATIVE	bool "conservative"	depends on !(X86_INTEL_PSTATE && SMP)	select CPU_FREQ_GOV_CONSERVATIVE	select CPU_FREQ_GOV_PERFORMANCE	help	  Use the CPUFreq governor 'conservative' as default. This allows	  you to get a full dynamic frequency capable system by simply	  loading your cpufreq low-level hardware driver.	  Be aware that not all cpufreq drivers support the conservative	  governor. If unsure have a look at the help section of the	  driver. Fallback governor will be the performance governor. config CPU_FREQ_DEFAULT_GOV_SCHEDUTIL	bool "schedutil"	depends on SMP	select CPU_FREQ_GOV_SCHEDUTIL	select CPU_FREQ_GOV_PERFORMANCE	help	  Use the 'schedutil' CPUFreq governor by default. If unsure,	  have a look at the help section of that governor. The fallback	  governor will be 'performance'. endchoice config CPU_FREQ_GOV_PERFORMANCE	tristate "'performance' governor"	help	  This cpufreq governor sets the frequency statically to the	  highest available CPU frequency. 	  To compile this driver as a module, choose M here: the	  module will be called cpufreq_performance. 	  If in doubt, say Y. config CPU_FREQ_GOV_POWERSAVE	tristate "'powersave' governor"	help	  This cpufreq governor sets the frequency statically to the	  lowest available CPU frequency. 	  To compile this driver as a module, choose M here: the	  module will be called cpufreq_powersave. 	  If in doubt, say Y. config CPU_FREQ_GOV_USERSPACE	tristate "'userspace' governor for userspace frequency scaling"	help	  Enable this cpufreq governor when you either want to set the	  CPU frequency manually or when a userspace program shall	  be able to set the CPU dynamically, like on LART 	  <http://www.lartmaker.nl/>. 	  To compile this driver as a module, choose M here: the	  module will be called cpufreq_userspace. 	  If in doubt, say Y. config CPU_FREQ_GOV_ONDEMAND	tristate "'ondemand' cpufreq policy governor"	select CPU_FREQ_GOV_COMMON	help	  'ondemand' - This driver adds a dynamic cpufreq policy governor.	  The governor does a periodic polling and 	  changes frequency based on the CPU utilization.	  The support for this governor depends on CPU capability to	  do fast frequency switching (i.e, very low latency frequency	  transitions).  	  To compile this driver as a module, choose M here: the	  module will be called cpufreq_ondemand. 	  For details, take a look at	  <file:Documentation/admin-guide/pm/cpufreq.rst>. 	  If in doubt, say N. config CPU_FREQ_GOV_CONSERVATIVE	tristate "'conservative' cpufreq governor"	select CPU_FREQ_GOV_COMMON	help	  'conservative' - this driver is rather similar to the 'ondemand'	  governor both in its source code and its purpose, the difference is	  its optimisation for better suitability in a battery powered	  environment.  The frequency is gracefully increased and decreased	  rather than jumping to 100% when speed is required. 	  If you have a desktop machine then you should really be considering	  the 'ondemand' governor instead, however if you are using a laptop,	  PDA or even an AMD64 based computer (due to the unacceptable	  step-by-step latency issues between the minimum and maximum frequency	  transitions in the CPU) you will probably want to use this governor. 	  To compile this driver as a module, choose M here: the	  module will be called cpufreq_conservative. 	  For details, take a look at	  <file:Documentation/admin-guide/pm/cpufreq.rst>. 	  If in doubt, say N. config CPU_FREQ_GOV_SCHEDUTIL	bool "'schedutil' cpufreq policy governor"	depends on SMP	select CPU_FREQ_GOV_ATTR_SET	select IRQ_WORK	help	  This governor makes decisions based on the utilization data provided	  by the scheduler.  It sets the CPU frequency to be proportional to	  the utilization/capacity ratio coming from the scheduler.  If the	  utilization is frequency-invariant, the new frequency is also	  proportional to the maximum available frequency.  If that is not the	  case, it is proportional to the current frequency of the CPU.  The	  frequency tipping point is at utilization/capacity equal to 80% in	  both cases. 	  If in doubt, say N. comment "CPU frequency scaling drivers" config CPUFREQ_DT	tristate "Generic DT based cpufreq driver"	depends on HAVE_CLK && OF	select CPUFREQ_DT_PLATDEV	select PM_OPP	help	  This adds a generic DT based cpufreq driver for frequency management.	  It supports both uniprocessor (UP) and symmetric multiprocessor (SMP)	  systems. 	  If in doubt, say N. config CPUFREQ_DT_RUST	tristate "Rust based Generic DT based cpufreq driver"	depends on HAVE_CLK && OF && RUST	select CPUFREQ_DT_PLATDEV	select PM_OPP	help	  This adds a Rust based generic DT based cpufreq driver for frequency	  management.  It supports both uniprocessor (UP) and symmetric	  multiprocessor (SMP) systems. 	  If in doubt, say N. config CPUFREQ_VIRT	tristate "Virtual cpufreq driver"	depends on GENERIC_ARCH_TOPOLOGY	help	  This adds a virtualized cpufreq driver for guest kernels that	  read/writes to a MMIO region for a virtualized cpufreq device to	  communicate with the host. It sends performance requests to the host	  which gets used as a hint to schedule vCPU threads and select CPU	  frequency. If a VM does not support a virtualized FIE such as AMUs,	  it updates the frequency scaling factor by polling host CPU frequency	  to enable accurate Per-Entity Load Tracking for tasks running in the guest. 	  If in doubt, say N. config CPUFREQ_DT_PLATDEV	bool "Generic DT based cpufreq platdev driver"	depends on OF	help	  This adds a generic DT based cpufreq platdev driver for frequency	  management.  This creates a 'cpufreq-dt' platform device, on the	  supported platforms. 	  If in doubt, say N. if X86source "drivers/cpufreq/Kconfig.x86"endif source "drivers/cpufreq/Kconfig.arm" if PPC32 || PPC64source "drivers/cpufreq/Kconfig.powerpc"endif if MIPSconfig BMIPS_CPUFREQ	tristate "BMIPS CPUfreq Driver"	help	  This option adds a CPUfreq driver for BMIPS processors with	  support for configurable CPU frequency. 	  For now, BMIPS5 chips are supported (such as the Broadcom 7425). 	  If in doubt, say N. config LOONGSON2_CPUFREQ	tristate "Loongson2 CPUFreq Driver"	depends on LEMOTE_MACH2F	help	  This option adds a CPUFreq driver for loongson processors which	  support software configurable cpu frequency. 	  Loongson2F and its successors support this feature. 	  If in doubt, say N.endif if LOONGARCHconfig LOONGSON3_CPUFREQ	tristate "Loongson3 CPUFreq Driver"	help	  This option adds a CPUFreq driver for Loongson processors which	  support software configurable cpu frequency. 	  Loongson-3 family processors support this feature. 	  If in doubt, say N.endif if SPARC64config SPARC_US3_CPUFREQ	tristate "UltraSPARC-III CPU Frequency driver"	help	  This adds the CPUFreq driver for UltraSPARC-III processors. 	  If in doubt, say N. config SPARC_US2E_CPUFREQ	tristate "UltraSPARC-IIe CPU Frequency driver"	help	  This adds the CPUFreq driver for UltraSPARC-IIe processors. 	  If in doubt, say N.endif if SUPERHconfig SH_CPU_FREQ	tristate "SuperH CPU Frequency driver"	help	  This adds the cpufreq driver for SuperH. Any CPU that supports	  clock rate rounding through the clock framework can use this	  driver. While it will make the kernel slightly larger, this is	  harmless for CPUs that don't support rate rounding. The driver	  will also generate a notice in the boot log before disabling	  itself if the CPU in question is not capable of rate rounding. 	  If unsure, say N.endif config QORIQ_CPUFREQ	tristate "CPU frequency scaling driver for Freescale QorIQ SoCs"	depends on OF && COMMON_CLK	depends on PPC_E500MC || SOC_LS1021A || ARCH_LAYERSCAPE || COMPILE_TEST	select CLK_QORIQ	help	  This adds the CPUFreq driver support for Freescale QorIQ SoCs	  which are capable of changing the CPU's frequency dynamically. config ACPI_CPPC_CPUFREQ	tristate "CPUFreq driver based on the ACPI CPPC spec"	depends on ACPI_PROCESSOR	depends on ARM || ARM64 || RISCV	select ACPI_CPPC_LIB	help	  This adds a CPUFreq driver which uses CPPC methods	  as described in the ACPIv5.1 spec. CPPC stands for	  Collaborative Processor Performance Controls. It	  is based on an abstract continuous scale of CPU	  performance values which allows the remote power	  processor to flexibly optimize for power and	  performance. CPPC relies on power management firmware	  support for its operation. 	  If in doubt, say N. config ACPI_CPPC_CPUFREQ_FIE	bool "Frequency Invariance support for CPPC cpufreq driver"	depends on ACPI_CPPC_CPUFREQ && GENERIC_ARCH_TOPOLOGY	depends on ARM || ARM64 || RISCV	default y	help	  This extends frequency invariance support in the CPPC cpufreq driver,	  by using CPPC delivered and reference performance counters. 	  If in doubt, say N. endif # CPU_FREQ endmenu