[Moto G 2015 General] TVD1903:
Any information in this thread is based on [MENTION=5886947]soniCron[/MENTION]'s guide here. If anyone would like more information on how exactly this works, head over there.

Introduction

After having read through all of soniCron's posts, I was really impressed and I wanted to test if for myself, but I do not have either a Nexus 6P of a Nexus 5X. I do however have a Moto G 2015, and since instructions were provided to apply his technique on other devices, I decided to give it a go. So after quite a bit of testing and calculating, I have been able to come up with some tweaks for our little phone. Now, I have not yet fully tested the battery life with these tweaks. I feel like they will work though, and so far, performance has been better than before and according to some frequency tables, the frequencies are staying lower.

Some more details

These tweaks should work on any ROM and/or kernel. However, there seem to be issues with the stock ROM, where either the target_loads and/or the above_hispeed_delay are not sticking. Please test for yourself. For a list of confirmed working ROMs, check below.

Your phone must be rooted. If you are not sure how to do this, check this guide.

With this out of the way, we can finally start with some numbers. In accordance with soniCron's thread, I have started with calculating the nominal (minimum required to do anything smoothly) clock rates for scrolling, watching video and loading apps. These clock rates were calculated using the performance governor, limiting the maximum clock speeds while performing a given task. These are only my observations and yours may vary depending on your settings and how well you have optimised your system and browser etc. Be sure to check if the clock rates are similar to those that you need to run the given task smoothly, you should be good to go.

For idle, I observed a nominal clock rate of 400000 MHz.

For scrolling, I observed a nominal clock rate of 998400 MHz.

For video watching, I observed a nominal clock rate of 1094400 MHz.

And finally, for app loading, I observed a nominal clock rate of 1209600 MHz.

With these values in mind, I then proceeded to calculating the maximum and minimum loads that were most efficient. (For more details, please see soniCron's thread)

Here they are:

200000:1

400000:68

533333:50

800000:25

998400:82

1094400:86

1152000:10

1209600:80

These values are essentially the target_loads the kernel looks for. I have also applied some other miscellaneous tweaks for the governor which all helped with performance while keeping battery life. Now, without further ado, I present you:

What you need to do (on Custom ROMs)

1) Make sure you are rooted and have Busybox installed.

2) Download a kernel manager app. There are loads of these in the play store, but I personally recommend this one.

3) Pop the following values in at the 'governor tunables' section, making sure you have the interactive governor selected.

above_hispeed_delay 20000 400000:60000 998400:30000

boostpulse_duration 80000

go_hispeed_load 99

hispeed_freq 1363200

max_freg_hysteresis 60000

min_sample_time 60000

target_loads 98 400000:68 533333:50 800000:25 998400:82 1094400:86 1152000:10 1209600:90

timer_rate 35000

timer_slack 80000

align_windows 1

4) TURN OFF TOUCH BOOST

5) (OPTIONAL) apply the other tweaks listed here

6) Make sure it's working correctly. Check if everything keeps running smoothly. If it doesn't, optimize your device more, or increase the min_sample_time by increments of 5000. If your CPU is going over the Idle speed often, adjust the timer_rate upwards by increments of 5000. If it stays at the Idle speed too much, adjust it downwards by increments of 5000.

7) ENJOY!

What you need to do (on Stock ROM)[Hit or miss for some]

1) Make sure you are rooted and have Busybox installed.

2) Download a kernel manager app. There are loads of these in the play store, but I personally recommend this one.

3) Pop the following values in at the 'governor tunables' section, making sure you have the interactive governor selected.

above_hispeed_delay 20000 400000:60000 998400:30000

boostpulse_duration 80000

go_hispeed_load 90

hispeed_freq 1363200

max_freg_hysteresis 60000

min_sample_time 60000

target_loads98 400000:68 533333:50 800000:25 998400:82 1094400:86 1152000:10 1209600:90 [These are not sticking for some, though we are looking for help as you read]

timer_rate 40000

timer_slack 80000

align_windows 1

4) TURN OFF TOUCH BOOST

5) (OPTIONAL) apply the other tweaks listed here

6) Make sure it's working correctly. Check if everything keeps running smoothly. If it doesn't, optimize your device more, or increase the min_sample_time by increments of 5000. If your CPU is going over the Idle speed often, adjust the timer_rate upwards by increments of 10000. If it stays at the Idle speed too much, adjust it downwards by increments of 10000.

7) ENJOY!

Conclusion

I have had lots of fun with observing and calculating the optimal speeds and settings. I hope these tweaks will help someone and if they do, please let everyone know by leaving a post in this thread. Good luck!

Thanks to:

[MENTION=5886947]soniCron[/MENTION] for making his amazing guide

[MENTION=6485916]squid2[/MENTION] for making the kernel that inspired me to make this guide

[MENTION=5178663]abhijeetc9762[/MENTION] for making the rooting guide

[MENTION=5075997]==vj==[/MENTION] for making the other tweaks-guide

[MENTION=4351553]Tel864[/MENTION], [MENTION=6780889]FalKoopa[/MENTION], [MENTION=5351917]..::Matr!x::..[/MENTION] , [MENTION=6240961]JackTheRipper1891[/MENTION], [MENTION=4477368]hekomat[/MENTION], [MENTION=4677565]mihaum[/MENTION] and more for testing

Tested working on

Squid kernel

crDroid 6.0.1

DominionOS 6.0.1

X-Infinity kernel

crDroid 6.0.1

DominionOS 6.0.1

Stock kernel

crDroid 6.0.1

Resurrection Remix 6.0.1

DominionOS 6.0.1

Optimus kernel

crDroid 6.0.1