Kernel config CPU Frequency Scaling / module and Intel "Turbo boost" behaviour
My stock Kernel configuration works ok, but I wanted to tweak it for several reasons. The new kernel is perfect, except...
My CPU is dual core "Intel Core i5-3317u" (http://ark.intel.com/products/65707) with a clock speed of 2x1.7Ghz. The CPU has a "turbo boost" up to 2.6GHz. When booting from my Mageia stock Kernel 3.8.13 the policy of CPU Frequncy Scaling is set to 799MHz to 1.7GHz per core, which is what I want. There are various other quirks in this Kernel that makes me want to swap to a customer one, which I have built. My custome Kernel is 3.10.10 and based upon the configuration of the stock Kernel with several modifications. All in all the new Kernel is better, but the new Kernel sets my CPU clock speed to maximum 2.6GHz. It sets my lower level to 1.4GHz and operates the governor between those frequencies. This behaviour is not something I want. I want the turbo boost to function, but I also want my normal CPU range to be 799MHz to 1.7GHz. I know I can set the behaviours manually by using CPUfrequency tools, but I am wondering why my governor automatically set my CPU clock speeds policy from 1.4GHz to 2.6GHz. Does anyone have insights into the CPU Frequency modules that they could share with me? The main difference in the ACPI --> CPU Frequency settings I did was to add several of the Intel Modules into the Kernel. My default governor is still the same. I did also add virtualisation support, some additional functions under "processor types and features" and some other things (Intel related drivers) that might effect the situation. What does this mean? Does it mean that the turbo boost was not active in my stock kernel? Or does it mean my CPU frequency modules are now behaving incorrectly? I suspect that it might have something to do with the "Intel Enhanced Speedstep" module. I am trying to run a cheap system and want the clock speed to always be at a minimum for the requirements. Any insight into CPUfrequencyscaling and Intel Turboboost would be highly appreciated. |
Hi
Sorry, I didn't fully understand the question. In the end, if you do a "cat /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state" what is the thing that you don't want to have? Thank you |
Thanks Pearlseattle, you put me on the right track. I was getting too impatient and looking in the wrong places!
As you see, here is the (almost)desired behaviour from my stock Kernel 3.8.13.4_mageia x86_64 GNU/Linux: Code:
analyzing CPU 0: Below is the undesired effect I had after compiling and running my custom Kernel 3.11.1try x86_64 GNU/Linux. I eventually found out thanks that the effect was caused by the wrong driver! DOH. But only after going into /sys/devices/system/cpu/cpuX/cpufreq/ and exploring what was going on there. There was no stats folder! Hmm. I then returned to looking at the bigger picture in my "cpupower frequency-info". Code:
analyzing CPU 0: The current status is much better. Custom Kernel 3.11.1try_again x86_64 GNU/Linux. Now I also have the stats finally: Code:
analyzing CPU 0: Lesson = don't use the wrong driver! (with all the Intel drivers in CPUfrequency in Kernel config it can get confusing). Solution = disabled "intel p state" from Kernel Note to self = "intel p state" overrides "acpi-cpufreq". "intel p state" does not work for my laptop. other notes = "intel enhanced speedstep" and "intel pentium 4 clock modulation" still built in and do not interfere negatively Whats next = idle state and thermal throttle :) Any problems still? Yes... Kindof.. Not really, but could turn out to become one.. Code:
localhost ~]#cpufreqd-get hmm indeed. |
I have compiled the Kernel a few more times now, optimising it. It works out great now. The sinner was definetely "Intel P state" module. A bit of patience and tuning made the situation great. It behaves just like I wanted.
Lesson learned. Choose the correct modules when using CPU Frequency Scaling! Or rather, don't add the wrong ones! |
All times are GMT -5. The time now is 06:29 PM. |