CPU scaling: how can current frequency be out of min-max range?

I'm trying to understand why my CPUs don't run at higher frequencies (related link)

Can someone explain me how is it possible that when a min and a max are defined, the effective value finally goes out of that range?

$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_min_freq
3267000
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_max_freq 
3300000
$ cat /sys/devices/system/cpu/cpu0/cpufreq/scaling_cur_freq 
1199960


$ cpupower frequency-info
analyzing CPU 0:
  driver: intel_pstate
  CPUs which run at the same hardware frequency: 0
  CPUs which need to have their frequency coordinated by software: 0
  maximum transition latency: 0.97 ms.
  hardware limits: 800 MHz - 3.30 GHz
  available cpufreq governors: performance, powersave
  current policy: frequency should be within 3.27 GHz and 3.30 GHz.
                  The governor "performance" may decide which speed to use
                  within this range.
  current CPU frequency is 1.20 GHz.
  boost state support:
    Supported: yes
    Active: yes
    25500 MHz max turbo 4 active cores
    25500 MHz max turbo 3 active cores
    25500 MHz max turbo 2 active cores
    25500 MHz max turbo 1 active cores

Also, can someone explain the difference between cpuinfo_cur_freq and scaling_cur_freq please?


Related issues I opened to solve my problem (may contain additional infos not mentionned here that could be useful)

  • Fans aren't fullspeed while CPU is 100°, then CPU frequency decrease
  • How to enable Turbo-boost
  • CPU scaling: how can current frequency be out of min-max range?

Additional info:

$ sudo rdmsr -a 0x19a
0
0
0
0
rdmsr: No CPU 4

Solution 1:

Depending on your processor, and for yours this is the case, cpuinfo_cur_freq and scaling_cur_freq are the same thing.
For some processors, cpuinfo_cur_freq involves a hardware read and can be "expensive" in terms of time, which is the reason it requires sudo to access.

Your CPU frequency can be outside the limits you have set, because the processor itself can back off on the PLL (Phase Locked Loop) if the load is light enough, and regardless of what you asked for. Don't worry the CPU frequency will spin up very quickly if there is actual work to do. In your case, you are using the performance governor, which will give the fastest CPU frequency ramp up time possible.

For your other referenced question, and as I mentioned over there, I think Clock Modulation is involved, which is a problem for the intel_pstate CPU frequency driver. To confirm or deny if Clock Modulation is enabled please add this result to your question:

$ sudo modprobe msr
$ sudo rdmsr -a 0x19a

Note that the package msr-tools is needed for the rdmsr primitive. I'll decode the information, once provided.