[Troubleshooting][Fixed] Overclocking i7-6850k on Linux

I'm having some CPU overclocking troubles. My CPU is an i7 6850k running in an Asrock X99 Taichi motherboard and I'm using the intel_pstate driver (Arch Linux on the 4.10.1 kernel). I've set the max Turbo multiplier to 42x for all cores in EFI and the most I can ever get out of this overclock is 4GHz on core 0 and 3.8GHz on all of the other cores. Here's a screenshot of the output of i7z while I'm running mprime in the background. Of particular note is that it says the max turbo multiplier with 1/2/3/4/5/6 cores enabled is 40x/40x/42x/42x/42x/42x. I also set the max multiplier to 40 and 44 in EFI and the single and dual core boost never changed. Moreover, this is a stable overclock and all cores run at 4.2GHz under load in Windows.

I do not think its throttling since I get the same speeds even if my CPU is at 60c. I also cannot figure out how to lock the clock multiplier. I've also tried many combinations of C-States off/on, Turbo Boost 3 off/on, and SpeedStep off/on. If I disable turbo boost, I lose all control of the multiplier.

Does anyone have an idea about what could cause this issue? I've emailed Asrock and their support blamed a lack of drivers for Linux (I didn't see that coming at all /s). I also would like to know if other have had success overclocking their Broadwell-E CPUs on other motherboards, cause it might be a problem with my motherboard.

could it be possible that what you're using to display frequency is incorrectly reporting values?

what does

watch lscpu

say under load vs like

cat /proc/cpuinfo | grep "MHz"

vs

sudo dmidecode -t processor | grep Speed

vs

lshw -c cpu | grep capacity

Thanks for responding! I wish that were the case, they all show the same info that i7z did. The max multiplier is set to 42 and a mprime torture test was running in the background. Here's the output.

lscpu

Results

Architecture:          x86_64
CPU op-mode(s):        32-bit, 64-bit
Byte Order:            Little Endian
CPU(s):                12
On-line CPU(s) list:   0-11
Thread(s) per core:    2
Core(s) per socket:    6
Socket(s):             1
NUMA node(s):          1
Vendor ID:             GenuineIntel
CPU family:            6
Model:                 79
Model name:            Intel(R) Core(TM) i7-6850K CPU @ 3.60GHz
Stepping:              1
CPU MHz:               3999.902
CPU max MHz:           4000.0000
CPU min MHz:           1200.0000
BogoMIPS:              7201.25
Virtualization:        VT-x
L1d cache:             32K
L1i cache:             32K
L2 cache:              256K
L3 cache:              15360K
NUMA node0 CPU(s):     0-11

cat /proc/cpuinfo | grep "MHz"

Results

cpu MHz		: 3999.902
cpu MHz		: 3799.951
cpu MHz		: 3799.951
cpu MHz		: 3799.951
cpu MHz		: 3799.951
cpu MHz		: 3799.951
cpu MHz		: 3999.902
cpu MHz		: 3799.951
cpu MHz		: 3799.951
cpu MHz		: 3799.951
cpu MHz		: 3799.951
cpu MHz		: 3799.951

sudo dmidecode -t processor | grep Speed

Results

Max Speed: 4000 MHz
Current Speed: 3600 MHz

lshw -c cpu | grep capacity

Results

capacity: 4GHz

what scheduler are you using?

does your EFI do any custom p/c-state stuff?

are you using the most recent UEFI version for your mobo?

My scheduler is CFS. I also tried using MuQSS but it yielded the same results. I don't know if my EFI does custom p and c state stuff (c-states are off as well). Is there a way to check? Yes, I'm on the most recent UEFI version for my mobo.

There will be some feature describing it, Asus calls it "custom OC power states," other manufacturers do similar on some of their SKUs.

Honestly, I'm a bit out of my depth here, I've never experienced this on standard kernels with up-to-date software

They pushed 4.10 just a few days ago iirc, it may be a regression?

I can't find any such features. 4.9 also had the same issue. I haven't tried 4.8 or anything of the sort so maybe installing the old 4.4LTS kernel will yield some results. IIRC, I didn't experience these issues with my overclocked 4770k in Linux. I guess I have more testing to do.

Update: the 4770k overclocks perfectly on Linux.

Update 2: Sorry for the bump, but the same issues exist in the 4.4 kernel. Anyone willing to post their stories and numbers from overclocking a Broadwell E CPU beyond the Turbo Boost 3 clock and running Linux?

1 Like

I saw the same thing under Antergos with Kernel 4.10, the system runs at stock - permanently - and ignores all overclocking settings in the bios. I am running the 6900K on a gigabyte ultra gaming. The interesting thing is under Ubuntu, kernel 4.8.42, this problem does not exist. I don't think this issues is down to the hardware.

I investigated p-state, upgraded the bios, recompiled the kernel to no avail. So have moved back to KDE Neon under ubuntu running the older kernel. I have only seen 2 other posts about this (including this one) which leads me to wonder if this is limited to the broadwell E line of CPU's.

1 Like

Thanks for checking this out! You just saved me a nice wad of cash. I just tried using the old 4.8.13 kernel on Arch and everything runs at stock. I'll try to reproduce your results on my machine. Are you running Ubuntu 16.04 or 16.10?

I have switched back to Antergos, as the latest Kernel update solved this issue for me on mine. But I was using Ubuntu 16.04 on the KDE Neon distribution previously

glad to hear it.

some stuff just stays "broken" on canonical's end in my experience.

That's weird, I updated my kernel and nothing happened. You're using the 4.10.5-1-ARCH kernel right?

4.10.4 - Just updated to 4.10.5 today - will see if it breaks it again.

UPDATE: Still works fine on 4.10.5

1 Like

Bump. I'm also experiencing the same probiem with Ubuntu 16.10 (kernel 4.10.10-041010); I'm still stuck on my stock speed.

Has anyone found a solution ?

I haven't found anything. I've been testing on each kernel update from 4.10.5 to now 4.10.11-1 on Arch.

what scaling governor are you using?

Linux will report the TSC, which is always the default stock frequency. Depends on the CPU how to get the correct reading. On Intel, you would normally dump the MSR's. If you overclock in UEFI, your CPU is overclocked, even if it is not reported as overclocked in linux, or if it is falsely reported.
There used to be a program called turbostat that would compare the actual timings of an ongoing full workload, and calculate the actual speed per core in comparison to the TSC. I don't know if that still exists though, nor if it's compatible with modern CPU's.

sorry but you are wrong.

Ubuntu doesn't take care about what I put in BIOS. For example, I set an amazing value ("80") in "CPU multiplier", Ubuuntu booted without a hitch.

I'm using a Z170 ASRock board, the C-states on mine are in advanced under CPU Configuration.

Overclock reports fine for me on the 6700k in Linux Mint 18 on Kernel 4.4.

I had the same problem and after searching for months, I tried to disable the intel microcode. This seem to have solved my problem on a 6900x

1 Like