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 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 /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