mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-24 01:41:39 +00:00
![Prarit Bhargava](/assets/img/avatar_default.png)
The current documentation is incomplete wrt the intel_pstate legacy internal governors. The confusion comes from the general cpufreq governors which also use the names performance and powersave. This patch better differentiates between the two sets of governors and gives an explanation of how the internal P-state governors behave differently from one another. Also fix two minor typos. Cc: Prarit Bhargava <prarit@redhat.com> Cc: "Rafael J. Wysocki" <rafael.j.wysocki@intel.com> Cc: Kristen Carlson Accardi <kristen@linux.intel.com> Cc: Dirk Brandewie <dirk.j.brandewie@intel.com> Cc: x86@kernel.org Acked-by: Viresh Kumar <viresh.kumar@linaro.org> Signed-off-by: Prarit Bhargava <prarit@redhat.com> Signed-off-by: Jonathan Corbet <corbet@lwn.net>
65 lines
2.9 KiB
Text
65 lines
2.9 KiB
Text
Intel P-state driver
|
|
--------------------
|
|
|
|
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 mode and Hardware P state (HWP)
|
|
mode.
|
|
|
|
In legacy mode, the Intel P-state implements two internal governors,
|
|
performance and powersave, that differ from the general cpufreq governors of
|
|
the same name (the general cpufreq governors implement target(), whereas the
|
|
internal Intel P-state governors implement setpolicy()). The internal
|
|
performance governor sets the max_perf_pct and min_perf_pct to 100; that is,
|
|
the governor selects the highest available P state to maximize the performance
|
|
of the core. The internal powersave governor selects the appropriate P state
|
|
based on the current load on the CPU.
|
|
|
|
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 Intel P-state governor code is disabled.
|
|
|
|
In addition 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
|
|
/sys/devices/system/cpu/intel_pstate/
|
|
|
|
max_perf_pct: limits the maximum P state that will be requested by
|
|
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.
|
|
|
|
min_perf_pct: limits the minimum P state that will be requested by
|
|
the driver stated as a percentage of the max (non-turbo)
|
|
performance level.
|
|
|
|
no_turbo: limits the driver to selecting P states below the turbo
|
|
frequency range.
|
|
|
|
turbo_pct: displays the percentage of the total performance that
|
|
is supported by hardware that is in the turbo range. This number
|
|
is independent of whether turbo has been disabled or not.
|
|
|
|
num_pstates: displays the number of pstates that are supported
|
|
by hardware. This number is independent of whether turbo has
|
|
been disabled or not.
|
|
|
|
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.
|
|
|
|
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.
|
|
|
|
deadband
|
|
d_gain_pct
|
|
i_gain_pct
|
|
p_gain_pct
|
|
sample_rate_ms
|
|
setpoint
|