2014-01-05 10:21:14 +00:00
|
|
|
Intel P-state driver
|
|
|
|
--------------------
|
|
|
|
|
2014-11-06 17:40:47 +00:00
|
|
|
This driver provides an interface to control the P state selection for
|
|
|
|
SandyBridge+ Intel processors. The driver can operate two different
|
|
|
|
modes based on the processor model legacy and Hardware P state (HWP)
|
|
|
|
mode.
|
|
|
|
|
|
|
|
In legacy mode the driver implements a scaling driver with an internal
|
|
|
|
governor for Intel Core processors. The driver follows the same model
|
|
|
|
as the Transmeta scaling driver (longrun.c) and implements the
|
|
|
|
setpolicy() instead of target(). Scaling drivers that implement
|
|
|
|
setpolicy() are assumed to implement internal governors by the cpufreq
|
|
|
|
core. All the logic for selecting the current P state is contained
|
|
|
|
within the driver; no external governor is used by the cpufreq core.
|
|
|
|
|
|
|
|
In HWP mode P state selection is implemented in the processor
|
|
|
|
itself. The driver provides the interfaces between the cpufreq core and
|
|
|
|
the processor to control P state selection based on user preferences
|
|
|
|
and reporting frequency to the cpufreq core. In this mode the
|
|
|
|
internal governor code is disabled.
|
|
|
|
|
|
|
|
In addtion to the interfaces provided by the cpufreq core for
|
|
|
|
controlling frequency the driver provides sysfs files for
|
|
|
|
controlling P state selection. These files have been added to
|
2014-01-05 10:21:14 +00:00
|
|
|
/sys/devices/system/cpu/intel_pstate/
|
|
|
|
|
|
|
|
max_perf_pct: limits the maximum P state that will be requested by
|
2014-06-20 14:28:00 +00:00
|
|
|
the driver stated as a percentage of the available performance. The
|
|
|
|
available (P states) performance may be reduced by the no_turbo
|
|
|
|
setting described below.
|
2014-01-05 10:21:14 +00:00
|
|
|
|
|
|
|
min_perf_pct: limits the minimum P state that will be requested by
|
2014-06-20 14:28:00 +00:00
|
|
|
the driver stated as a percentage of the max (non-turbo)
|
|
|
|
performance level.
|
2014-01-05 10:21:14 +00:00
|
|
|
|
|
|
|
no_turbo: limits the driver to selecting P states below the turbo
|
|
|
|
frequency range.
|
|
|
|
|
|
|
|
For contemporary Intel processors, the frequency is controlled by the
|
|
|
|
processor itself and the P-states exposed to software are related to
|
|
|
|
performance levels. The idea that frequency can be set to a single
|
|
|
|
frequency is fiction for Intel Core processors. Even if the scaling
|
|
|
|
driver selects a single P state the actual frequency the processor
|
|
|
|
will run at is selected by the processor itself.
|
|
|
|
|
2014-11-06 17:40:47 +00:00
|
|
|
For legacy mode debugfs files have also been added to allow tuning of
|
|
|
|
the internal governor algorythm. These files are located at
|
|
|
|
/sys/kernel/debug/pstate_snb/ These files are NOT present in HWP mode.
|
2014-01-05 10:21:14 +00:00
|
|
|
|
|
|
|
deadband
|
|
|
|
d_gain_pct
|
|
|
|
i_gain_pct
|
|
|
|
p_gain_pct
|
|
|
|
sample_rate_ms
|
|
|
|
setpoint
|