blob: be8d4006bf767d37b7b1882ba962363abb1f81d3 [file] [log] [blame]
Ramkumar Ramachandraa3ea0152014-01-05 15:51:14 +05301Intel P-state driver
2--------------------
3
Dirk Brandewie2f86dc42014-11-06 09:40:47 -08004This driver provides an interface to control the P state selection for
5SandyBridge+ Intel processors. The driver can operate two different
Prarit Bhargava1df1b362015-06-01 09:36:04 -04006modes based on the processor model, legacy mode and Hardware P state (HWP)
Dirk Brandewie2f86dc42014-11-06 09:40:47 -08007mode.
Ramkumar Ramachandraa3ea0152014-01-05 15:51:14 +05308
Prarit Bhargava1df1b362015-06-01 09:36:04 -04009In legacy mode, the Intel P-state implements two internal governors,
10performance and powersave, that differ from the general cpufreq governors of
11the same name (the general cpufreq governors implement target(), whereas the
12internal Intel P-state governors implement setpolicy()). The internal
13performance governor sets the max_perf_pct and min_perf_pct to 100; that is,
14the governor selects the highest available P state to maximize the performance
15of the core. The internal powersave governor selects the appropriate P state
16based on the current load on the CPU.
Ramkumar Ramachandraa3ea0152014-01-05 15:51:14 +053017
Dirk Brandewie2f86dc42014-11-06 09:40:47 -080018In HWP mode P state selection is implemented in the processor
19itself. The driver provides the interfaces between the cpufreq core and
20the processor to control P state selection based on user preferences
21and reporting frequency to the cpufreq core. In this mode the
Prarit Bhargava1df1b362015-06-01 09:36:04 -040022internal Intel P-state governor code is disabled.
Dirk Brandewie2f86dc42014-11-06 09:40:47 -080023
Prarit Bhargava1df1b362015-06-01 09:36:04 -040024In addition to the interfaces provided by the cpufreq core for
Dirk Brandewie2f86dc42014-11-06 09:40:47 -080025controlling frequency the driver provides sysfs files for
26controlling P state selection. These files have been added to
Ramkumar Ramachandraa3ea0152014-01-05 15:51:14 +053027/sys/devices/system/cpu/intel_pstate/
28
29 max_perf_pct: limits the maximum P state that will be requested by
Dirk Brandewie41629a82014-06-20 07:28:00 -070030 the driver stated as a percentage of the available performance. The
31 available (P states) performance may be reduced by the no_turbo
32 setting described below.
Ramkumar Ramachandraa3ea0152014-01-05 15:51:14 +053033
34 min_perf_pct: limits the minimum P state that will be requested by
Dirk Brandewie41629a82014-06-20 07:28:00 -070035 the driver stated as a percentage of the max (non-turbo)
36 performance level.
Ramkumar Ramachandraa3ea0152014-01-05 15:51:14 +053037
38 no_turbo: limits the driver to selecting P states below the turbo
39 frequency range.
40
Kristen Carlson Accardid01b1f42015-01-28 15:03:27 -080041 turbo_pct: displays the percentage of the total performance that
42 is supported by hardware that is in the turbo range. This number
43 is independent of whether turbo has been disabled or not.
44
Kristen Carlson Accardi05224242015-01-28 15:03:28 -080045 num_pstates: displays the number of pstates that are supported
46 by hardware. This number is independent of whether turbo has
47 been disabled or not.
48
Ramkumar Ramachandraa3ea0152014-01-05 15:51:14 +053049For contemporary Intel processors, the frequency is controlled by the
50processor itself and the P-states exposed to software are related to
51performance levels. The idea that frequency can be set to a single
52frequency is fiction for Intel Core processors. Even if the scaling
53driver selects a single P state the actual frequency the processor
54will run at is selected by the processor itself.
55
Dirk Brandewie2f86dc42014-11-06 09:40:47 -080056For legacy mode debugfs files have also been added to allow tuning of
57the internal governor algorythm. These files are located at
58/sys/kernel/debug/pstate_snb/ These files are NOT present in HWP mode.
Ramkumar Ramachandraa3ea0152014-01-05 15:51:14 +053059
60 deadband
61 d_gain_pct
62 i_gain_pct
63 p_gain_pct
64 sample_rate_ms
65 setpoint