1

Tried to force CPU to run at max speed after it refused to do so under times when CPU usage definitely should be at max, did so by manually setting governor to 'performance'. This didn't work, CPU continued to run between 2.2-3.0 GHz out of the 3.2GHz allowed. After setting the minimum frequency for the 'performance' governor to 3.2GHz, this is what I get when I run cpufreq-info:

link to scrot

policy is that frequency should be between 3.2GHz and 3.2GHz, but four out of four cores are running at somewhere between 2.8 and 3.0 GHz.

Any help is appreciated.

2 Answers2

1

Please know that even with the governor set to performance, the processor can decide by itself to back-off the CPU frequency under conditions of no, or very little, load. Also, and depending on your actual processor model number, the maximum turbo frequency might be reduced if multiple cores are active at the same time. Use turbostat (I think part of linux-tools-common)to know for certain what is going on.

Doug Smythies
  • 15,448
  • 5
  • 44
  • 61
  • running turbostat gives me a bunch of stuff, among which I found the following;

    `cpu2: MSR_TURBO_RATIO_LIMIT: 0x1c1d1e20

    28 * 100.0 = 2800.0 MHz max turbo 4 active cores

    29 * 100.0 = 2900.0 MHz max turbo 3 active cores

    30 * 100.0 = 3000.0 MHz max turbo 2 active cores

    32 * 100.0 = 3200.0 MHz max turbo 1 active cores `

    This would explain why my cores all run at 2.8GHz at times when CPU really needs to kick in. How would I go about changing these values, if possible?

    – arkostin01 Feb 01 '18 at 00:20
  • It is not possible to change those. – Doug Smythies Feb 01 '18 at 00:49
  • @arkostin01 : Correction: If the processor is an unlocked model, then it is possible to write to MSR_TURBO_RATIO_LIMIT (0x1AD) and changes those values. – Doug Smythies Dec 09 '19 at 15:37
0

Install stress test to get maximum frequency

If you want to see your CPU running at full speed run a stress test. From this answer: How do I stress test CPU and RAM (at the same time)? you can install stress using:

sudo apt install stress

Then stress test your CPU and RAM using:

stress --cpu 8 --io 4 --vm 4 --vm-bytes 1024M --timeout 20s

Even when set to powersave instead of performance you can see by running top or in my case conky the CPUs max out at top turbo speed:

stress 30 seconds.gif

The display starts out for a few seconds running around 1100 MHz at 50 degrees Celsius watching a Dr. Who Video on one screen and four Firefox tabs open on the other screen.

Then the stress test engages and temperatures spike to 80 degrees Celsius with all four cores (8 virtual CPUs) running at 3100 MHz. From Intel's wikipage for the i7 6700HQ:

turbo frequency (1 core)    3,500 MHz (3.5 GHz, 3,500,000 kHz) +
turbo frequency (2 cores)   3,300 MHz (3.3 GHz, 3,300,000 kHz) +
turbo frequency (3 cores)   3,200 MHz (3.2 GHz, 3,200,000 kHz) +
turbo frequency (4 cores)   3,100 MHz (3.1 GHz, 3,100,000 kHz) +

Although published top speed is 3.5 GHz (3500 MHz) with turbo that is for a single core and we have all four cores running at max which is 3.1 GHz (3100 MHz).