Intel i7-10875h, Linux and the intel_pstate driver
Recently I got a new laptop from work with an Intel i7-10875h cpu. Specs according to Intel: 8 cores+HT, base frequency 2.3 GHz, Max turbo 5.1 GHz with Max Turbo Boost 3.0 and Thermal Velocity Boost enabled.
The laptop is running Linux Fedora 32, kernel 5.8.16 and I was getting nowhere *NEAR* the 5.1 GHz (measured using turbostat). Best I can get - while on AC power - was 4.5 GHz single core perf with the pstate driver set to "powersave" and 4.8 GHz with the pstate driver set to "performance". When loading up all cores I'd get 2.8 (powersave) and 4.2 (performance).
Note that I used the following to set the policy to "performance":
for i in `seq 0 15` ; do echo performance > /sys/devices/system/cpu/cpufreq/policy$i/scaling_governor ; done
Downside of the above is that the laptop starts making electronic noise not coming from the speakers. On Windows it was not any better, btw.
Now with some experimentation I decided to boot Linux using
effectively turning OFF the hardware performance counters and now I am seeing that the CPU (on AC power) hits 5.0GHz on one of the cores (and one only, the others are 4.8/4.9) and the 16 core load tops off at 4.0 GHz (dropping to 3.8 as the CPU heats up). This is much closer to the actual spec of the CPU.
So what's the correct thing to do here? is the Linux intel_pstate driver broken for Comet Lake (I tested it on Kabylake and it does exactly what you expect there) ?