Tux's lil' helper
Joined: 09 Jan 2004
|Posted: Wed May 28, 2014 10:51 am Post subject: Turboboost and SMT not working properly in 3.14.x
|I recently upgraded to 3.14.x on all my machines. Basically started out because i built a new Bay-Trail-T based router and needed 3.13.7 minimum due to the new P-state driver and fixes for bay-trail. With out it I did not get turbo boost to work on it so it was stuck at 2Ghz instead of 2.42Ghz max so it benchmarked 7.3Gflops instead of 8.8Gflops as it dose now when all cores are allowed to run at 2.42Ghz. Oddly enough worked with the gentoo live DVD that had an older kernel.
More strange tough is that my i7 3930K @ 4Ghz with kernel 3.14.x (tested most sub versions from gentoo-sources) do not want to work with turbo boost not even with a CMOS reset and the CPU configured according to intel specs with All C-STATES and turboboost properly set. So I did not even get the up to 3.6Ghz turbo boost one one core. Even running 6+ threads should yield 3.3Ghz minimum.
BIOS reports correct information when it comes to what multipliers sould be used depending on number of cores in C0 state and C6 state. i7z reports the correct information to BUT its stuck at 3.2Ghz base clock any way even when it reports 40x multiplier for all cores overclocked or the intel default once running default bios settings.
I can at times get it to go up to max boost clock running ONE thread in prime95 but if I run 2 or more threads its stuck at base clock and usually never go above it.
Now I worked my way around the overclocking issue in bios, oddly enough since there are basically 3 ways to increase the clock on an i7 processor on LGA2011, base clock, per core multiplier or one multiplier for all cores. But after that I noticed that Hyper Threading did not work. I have had i7 processors since i7 920 and never had problems with Turbo boost nor Hyper Threading.
If I run Intel linpack it will only spawn the same amount of threads as there are cores since intel knows Linpack is faster with one thread per core. So it was an excellent test to see if the linux kernels hyper threading scheduler works properly. And for me two threads have never used the same core so I got a consistent 130Gflops stock or 168Gflops overclocked.
With 3.14 the threads run all over the place. On averaged 3-4 cores are used with 6 threads reducing the GFlop rating to 90-120Gflops.
To be honest I first blamed the bios for all of this since I upgraded it due to the fact that I had a new GTX780 waiting to be installed and the bios was like 15 versions behind and had fixes for GTX680 and other things so I figured it was a good idea to upgrade.
But with kernel 3.12 that I went back to all my problems went away so it never was the BIOS fault. If I had tested with the old bios first I would have seen that the problem had started after my system wide upgrade including a new kernel 1-2 months ago.
My old BIOS settings works properly now so turboo boost works as it should and can be used for overclocking once again. Hyper threading works as it should and linpack and prime95 or any other test where I can control the threads works just fine. and the results the bios repports and i7z is now reflected in i7z when it comes to actual per core frequency and intel linpack benchmark results.
I never could get 3.14 to work properly on my i7 3930K. Works fine on my Celeron J1900 Bay-Trail-T tough but well a different processor.
I know there has been changes in 3.13.7 and the 3.14 line when it comes to P-States and well power saving features and such in general for intel processors.
For me it seems broken on some of my systems but not others.
I have searched the net for similar cases and found some people with similar problems but nothing that sticks out.
But on the other hand I doubt a lot of people test if hyper threading shedular works properly or if turbo boost works properly if they even know what it is.
I compile my own kernels, add what I need usually so when I went from 3.12 to 3.14 I use make oldconfig as usual.
I also tried the new P-STATE driver for intel on the i7 rig but made no difference.
Is there any one else that has similar problems with Hyper Threading and Turbo boost? as i sad I us intel linpackl and prime95 and i7z to check that my CPU works properly and the benchmark results confirms that turbo boost is not working in 3.14 for me and also the power draw of the system reflects that so its not a case of i7z reporting the wrong clock frequency.
Bit annoying to lose like 20% CPU performance with a new kernel.
My motherboard is ASUS P9X79 with BIOS 4608 (latest).
Here is my .config from the last 3.14.4 kernel I tested.
WS: i7 3930K@4Ghz, 32Gb ram, 256Gb NVME & 128Gb sata SSD, GTX780 3Gb & RX 460 2Gb
NAS: i3 4360 3.7Ghz, 20Gb ram, 256Gb SSD, 42Tb HDD, NIC: Intel 2x1Gbit
ROUTER: J1900 2Ghz, 8Gb ram, 128Gb SSD, NIC: 2x1Gbit, WIFI: Atheros AR9462 and AR5005G