Jump to content

CPU Frequency Control Script


Recommended Posts

Got a technical challenge for you guys.

 

Basically I want to improve the way the CPU freq on my machine dynamically changes, because the on demand governor is quite frankly, ****.

 

Even when I tweak the options or use cpufreqd it still doesn't run how I want it to.

 

How easy would it be to code a plugin that does the following:

 

1. Polls each core for it's utilisation. So if I quad core is at 50% load on core 0, but cores 1-3 are at 0% then clearly core 0 needs to speed up, not the others.

 

And if someone has a Thurban based AMD chip then it even scales voltage per core, not just frequency!

 

2. Polls specific processes (shfs, afpd, etc) for CPU usage above 10% -> I have benchmarks that show improvements to the performance of the transfers all the way up to 3.2Ghz!

 

3. Combines this into changing CPU frequency in steps, like:

 

freq_scaling.jpg

 

So if the CPU goes to 100% and stays there for 3 polls it moves up to the next C-state, if it's still at 100% after 3 polls, jumps another one.. etc. Until it reaches frequency equilibrium. Then it has to wait for 5 polls before it clocks down to the next C-state, etc.

 

Is this possible?

 

And before people say keep it in performance mode: there is a 15-20W difference between 3.2Ghz and 1.3V and 800Mhz and 0.8V...

 

Combine this with k10ctl and anyone with a k10 chip can make a turbo boost mode for themselves.

 

So if two of my cores are utilised and the other two are idle I can set cores 0 & 1 to 3.6GHz instead of nominal 3.2Ghz for a little extra boost for single threaded apps (again SHFS benefits from this increase - albeit not much).

 

And another benefit would be if I was running a parity check I could force the CPU to 2GHz and a tad above stock voltage during this critical process..

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...