drivers/cpufreq/Kconfig v5.13-rc1


Menu: CPU Frequency scaling

CPU_FREQ

CPU Frequency scaling

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.

CPU_FREQ_STAT

CPU frequency transition statistics

Export CPU frequency statistics information through sysfs.

If in doubt, say N.

CPU_FREQ_STAT

Default CPUFreq governor

This option sets which CPUFreq governor shall be loaded at
startup. If in doubt, use the default setting.

CPU_FREQ_DEFAULT_GOV_PERFORMANCE

performance

Use the CPUFreq governor 'performance' as default. This sets
the frequency statically to the highest frequency supported by
the CPU.

CPU_FREQ_DEFAULT_GOV_POWERSAVE

powersave

Use the CPUFreq governor 'powersave' as default. This sets
the frequency statically to the lowest frequency supported by
the CPU.

CPU_FREQ_DEFAULT_GOV_USERSPACE

userspace

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.

CPU_FREQ_DEFAULT_GOV_ONDEMAND

ondemand

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.

CPU_FREQ_DEFAULT_GOV_CONSERVATIVE

conservative

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.

CPU_FREQ_DEFAULT_GOV_SCHEDUTIL

schedutil

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'.

CPU_FREQ_GOV_PERFORMANCE

'performance' governor

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.

CPU_FREQ_GOV_POWERSAVE

'powersave' governor

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.

CPU_FREQ_GOV_USERSPACE

'userspace' governor for userspace frequency scaling

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.

CPU_FREQ_GOV_ONDEMAND

'ondemand' cpufreq policy governor

'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.

CPU_FREQ_GOV_CONSERVATIVE

'conservative' cpufreq governor

'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.

CPU_FREQ_GOV_SCHEDUTIL

'schedutil' cpufreq policy governor

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.

CPU frequency scaling drivers

CPUFREQ_DT

Generic DT based cpufreq driver

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.

CPUFREQ_DT_PLATDEV

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.

drivers/cpufreq/Kconfig.x86

drivers/cpufreq/Kconfig.arm

drivers/cpufreq/Kconfig.powerpc

IA64_ACPI_CPUFREQ

ACPI Processor P-States driver

This driver adds a CPUFreq driver which utilizes the ACPI
Processor Performance States.

If in doubt, say N.

BMIPS_CPUFREQ

BMIPS CPUfreq Driver

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.

LOONGSON2_CPUFREQ

Loongson2 CPUFreq Driver

This option adds a CPUFreq driver for loongson processors which
support software configurable cpu frequency.

Loongson2F and it's successors support this feature.

If in doubt, say N.

LOONGSON1_CPUFREQ

Loongson1 CPUFreq Driver

This option adds a CPUFreq driver for loongson1 processors which
support software configurable cpu frequency.

If in doubt, say N.

SPARC_US3_CPUFREQ

UltraSPARC-III CPU Frequency driver

This adds the CPUFreq driver for UltraSPARC-III processors.

If in doubt, say N.

SPARC_US2E_CPUFREQ

UltraSPARC-IIe CPU Frequency driver

This adds the CPUFreq driver for UltraSPARC-IIe processors.

If in doubt, say N.

SH_CPU_FREQ

SuperH CPU Frequency driver

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.

QORIQ_CPUFREQ

CPU frequency scaling driver for Freescale QorIQ SoCs

This adds the CPUFreq driver support for Freescale QorIQ SoCs
which are capable of changing the CPU's frequency dynamically.