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.
Export CPU frequency statistics information through sysfs. If in doubt, say N.
This option sets which CPUFreq governor shall be loaded at startup. If in doubt, use the default setting.
Use the CPUFreq governor 'performance' as default. This sets the frequency statically to the highest frequency supported by the CPU.
Use the CPUFreq governor 'powersave' as default. This sets the frequency statically to the lowest frequency supported by the CPU.
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.
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.
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.
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'.
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.
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.
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.
'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.
'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.
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.
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.
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.
This driver adds a CPUFreq driver which utilizes the ACPI Processor Performance States. If in doubt, say N.
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.
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.
This option adds a CPUFreq driver for loongson1 processors which support software configurable cpu frequency. If in doubt, say N.
This adds the CPUFreq driver for UltraSPARC-III processors. If in doubt, say N.
This adds the CPUFreq driver for UltraSPARC-IIe processors. If in doubt, say N.
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.
This adds the CPUFreq driver support for Freescale QorIQ SoCs which are capable of changing the CPU's frequency dynamically.