Ramkumar Ramachandra | a3ea015 | 2014-01-05 15:51:14 +0530 | [diff] [blame] | 1 | Intel P-state driver |
| 2 | -------------------- |
| 3 | |
Dirk Brandewie | 2f86dc4 | 2014-11-06 09:40:47 -0800 | [diff] [blame] | 4 | This driver provides an interface to control the P state selection for |
| 5 | SandyBridge+ Intel processors. The driver can operate two different |
| 6 | modes based on the processor model legacy and Hardware P state (HWP) |
| 7 | mode. |
Ramkumar Ramachandra | a3ea015 | 2014-01-05 15:51:14 +0530 | [diff] [blame] | 8 | |
Dirk Brandewie | 2f86dc4 | 2014-11-06 09:40:47 -0800 | [diff] [blame] | 9 | In legacy mode the driver implements a scaling driver with an internal |
| 10 | governor for Intel Core processors. The driver follows the same model |
| 11 | as the Transmeta scaling driver (longrun.c) and implements the |
| 12 | setpolicy() instead of target(). Scaling drivers that implement |
| 13 | setpolicy() are assumed to implement internal governors by the cpufreq |
| 14 | core. All the logic for selecting the current P state is contained |
| 15 | within the driver; no external governor is used by the cpufreq core. |
Ramkumar Ramachandra | a3ea015 | 2014-01-05 15:51:14 +0530 | [diff] [blame] | 16 | |
Dirk Brandewie | 2f86dc4 | 2014-11-06 09:40:47 -0800 | [diff] [blame] | 17 | In HWP mode P state selection is implemented in the processor |
| 18 | itself. The driver provides the interfaces between the cpufreq core and |
| 19 | the processor to control P state selection based on user preferences |
| 20 | and reporting frequency to the cpufreq core. In this mode the |
| 21 | internal governor code is disabled. |
| 22 | |
| 23 | In addtion to the interfaces provided by the cpufreq core for |
| 24 | controlling frequency the driver provides sysfs files for |
| 25 | controlling P state selection. These files have been added to |
Ramkumar Ramachandra | a3ea015 | 2014-01-05 15:51:14 +0530 | [diff] [blame] | 26 | /sys/devices/system/cpu/intel_pstate/ |
| 27 | |
| 28 | max_perf_pct: limits the maximum P state that will be requested by |
Dirk Brandewie | 41629a8 | 2014-06-20 07:28:00 -0700 | [diff] [blame] | 29 | the driver stated as a percentage of the available performance. The |
| 30 | available (P states) performance may be reduced by the no_turbo |
| 31 | setting described below. |
Ramkumar Ramachandra | a3ea015 | 2014-01-05 15:51:14 +0530 | [diff] [blame] | 32 | |
| 33 | min_perf_pct: limits the minimum P state that will be requested by |
Dirk Brandewie | 41629a8 | 2014-06-20 07:28:00 -0700 | [diff] [blame] | 34 | the driver stated as a percentage of the max (non-turbo) |
| 35 | performance level. |
Ramkumar Ramachandra | a3ea015 | 2014-01-05 15:51:14 +0530 | [diff] [blame] | 36 | |
| 37 | no_turbo: limits the driver to selecting P states below the turbo |
| 38 | frequency range. |
| 39 | |
Kristen Carlson Accardi | d01b1f4 | 2015-01-28 15:03:27 -0800 | [diff] [blame] | 40 | turbo_pct: displays the percentage of the total performance that |
| 41 | is supported by hardware that is in the turbo range. This number |
| 42 | is independent of whether turbo has been disabled or not. |
| 43 | |
Kristen Carlson Accardi | 0522424 | 2015-01-28 15:03:28 -0800 | [diff] [blame] | 44 | num_pstates: displays the number of pstates that are supported |
| 45 | by hardware. This number is independent of whether turbo has |
| 46 | been disabled or not. |
| 47 | |
Ramkumar Ramachandra | a3ea015 | 2014-01-05 15:51:14 +0530 | [diff] [blame] | 48 | For contemporary Intel processors, the frequency is controlled by the |
| 49 | processor itself and the P-states exposed to software are related to |
| 50 | performance levels. The idea that frequency can be set to a single |
| 51 | frequency is fiction for Intel Core processors. Even if the scaling |
| 52 | driver selects a single P state the actual frequency the processor |
| 53 | will run at is selected by the processor itself. |
| 54 | |
Dirk Brandewie | 2f86dc4 | 2014-11-06 09:40:47 -0800 | [diff] [blame] | 55 | For legacy mode debugfs files have also been added to allow tuning of |
| 56 | the internal governor algorythm. These files are located at |
| 57 | /sys/kernel/debug/pstate_snb/ These files are NOT present in HWP mode. |
Ramkumar Ramachandra | a3ea015 | 2014-01-05 15:51:14 +0530 | [diff] [blame] | 58 | |
| 59 | deadband |
| 60 | d_gain_pct |
| 61 | i_gain_pct |
| 62 | p_gain_pct |
| 63 | sample_rate_ms |
| 64 | setpoint |