3. TWEAKING THE CPU GOVERNOR
Increasing the minimum frequency of the CPU will result in less performance slowdowns, while increasing the maximum will allow the CPU to ramp higher under loads such as gaming. The drop-down menu offers fixed overclocked values, which simplifies things by limiting your options. We were generally comfortable going for a maximum frequency of 2,304MHz for our device.
You can tweak the same parameters for the more power-efficient Cortex A53 cores as well. Less-demanding tasks like web browsing will prioritize these cores over the A57s, so if you think your phone could be speedier in this area, overclocking these cores may help.
For voltage control, use the Synapse app to set the voltages for the individual CPU steps. In general, lower clock speeds (< 1,000MHz) could do with around a 25mV undervolt to conserve power. Synapse computes the increased voltage at the overclocked frequencies for you, and we didn’t see a need to deviate from those values. But if your overclock is unstable, boosting the voltages slightly may help. Kernel Adiutor also lets you change the CPU governor for both big and LITTLE core clusters. This is what controls how the various cores respond to changes in user demand. There are just two options to choose from here: interactive and performance.
The default interactive governor dynamically scales CPU clock speeds in response to user workloads. It is also capable of utilizing intermediate CPU frequencies, which makes it a fairly versatile governor that balances both performance and battery life.
On the other hand, the performance governor simply locks the phone’s CPU at maximum frequency. If you’re going to want to do this at all, it makes more sense to apply this for the LITTLE cores as you’ll get faster general performance while not quite draining your battery with the more power-hungry big cores.
The Governor Tunables option is not available for the performance governor, but you have the option to further tweak the interactive governor. The options may seem a lot to grapple with, but you can just pay attention to the following (along with tips as to what they do): • hispeed_freq - CPU frequency (in Hz) to bump to when CPU load above go_hispeed_load. Increasing this boosts performance. • go_hispeed_load - Go to hi speed when CPU load is at or above this value. Lowering this value will cause the CPU to ramp up more often, and vice versa. • min_sample_time - The minimum amount of time (in μs) to spend at a frequency before CPU can ramp down. Increasing this value increases the number of successive tasks you can perform before the CPU scales back down, reducing frequency bouncing. • timer_rate - Sample rate (in μs) for reevaluating CPU load when system is not idle. Decreasing this value may allow CPU to respond to sudden loads more quickly.