diff options
author | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2016-11-17 23:34:17 +0100 |
---|---|---|
committer | Rafael J. Wysocki <rafael.j.wysocki@intel.com> | 2016-11-21 14:32:32 +0100 |
commit | 001c76f05b01cc8ceb2098c9ff5de2609bec7f76 (patch) | |
tree | 2019cdcb065dd0756187722203bcaa8570c3a447 /drivers/cpufreq/cpufreq.c | |
parent | d0ea59e188941417a9fb5898d894b3106a8ad313 (diff) | |
download | lwn-001c76f05b01cc8ceb2098c9ff5de2609bec7f76.tar.gz lwn-001c76f05b01cc8ceb2098c9ff5de2609bec7f76.zip |
cpufreq: intel_pstate: Generic governors support
There may be reasons to use generic cpufreq governors (eg. schedutil)
on Intel platforms instead of the intel_pstate driver's internal
governor. However, that currently can only be done by disabling
intel_pstate altogether and using the acpi-cpufreq driver instead
of it, which is subject to limitations.
First of all, acpi-cpufreq only works on systems where the _PSS
object is present in the ACPI tables for all logical CPUs. Second,
on those systems acpi-cpufreq will only use frequencies listed by
_PSS which may be suboptimal. In particular, by convention, the
whole turbo range is represented in _PSS as a single P-state and
the frequency assigned to it is greater by 1 MHz than the greatest
non-turbo frequency listed by _PSS. That may confuse governors to
use turbo frequencies less frequently which may lead to suboptimal
performance.
For this reason, make it possible to use the intel_pstate driver
with generic cpufreq governors as a "normal" cpufreq driver. That
mode is enforced by adding intel_pstate=passive to the kernel
command line and cannot be disabled at run time. In that mode,
intel_pstate provides a cpufreq driver interface including
the ->target() and ->fast_switch() callbacks and is listed in
scaling_driver as "intel_cpufreq".
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Tested-by: Doug Smythies <dsmythies@telus.net>
Diffstat (limited to 'drivers/cpufreq/cpufreq.c')
0 files changed, 0 insertions, 0 deletions