Linux – Force Haswell CPU to fixed frequency

cpu-frequencylinuxx86

For stability of benchmarks I wish to run the E5-2680 v3 2.5 GHz CPUs in my Dell R430 test servers running Fedora 23 at their nominal frequency – no more, no less.

I've disabled the intel_pstate driver, and /proc/cpuinfo appears to indicate that they're running at the requested speed, with all cores showing ~2500 MHz.

However : the cpufreq program shows that the frequencies are not fixed, e.g. on a server with one core running a heavy load:

# cpupower monitor -m Mperf
    |Mperf               
CPU | C0   | Cx   | Freq 
   0|  3.48| 96.52|  1198
   1|  7.28| 92.72|  1198
   2|  4.88| 95.12|  1198
   3|  3.76| 96.24|  1198
   4|  3.53| 96.47|  1198
   5|  7.17| 92.83|  1198
   6|  4.18| 95.82|  1198
   7|  8.75| 91.25|  1198
   8|  8.51| 91.49|  1198
   9|  6.41| 93.59|  1198
  10| 99.98|  0.02|  2896
  11|  7.33| 92.67|  1198

So, apparently that one core is running above the nominal rate, and the other 11 cores are idling.

It's possible that cpupower is giving me bad information, but if not it's essential for my benchmarks that the CPU cores do run at a consistent speed.

Am I missing something, or is it not possible to fix the speed as I require?

Best Answer

I've subsequently discovered that this was because the BIOS System Profile setting was set to the default "SysDbpm" (BIOS controlled Speedstep) instead of "OsDbpm" (O/S controlled).

With the BIOS set appropriately and rebooted the acpi-cpufreq driver regained proper control over the CPU frequency.

Related Question