[One (M9) Android Development] Mostafa Wael:
UPDATE!!!

/*\ 06/05/2016

-> Added new "Optimised" file! Very recommended!!

-> Surprise! credits go to [MENTION=1792279]ivicask[/MENTION] for that surprise

-> Updated daily use (relaxed) to latest test version

-> Updated cooler beta to latest test version

-> Added the option to revert back to stock thermal file.

-> Probably something else I might have forgot :D :p

Download: here you go :)

Now, let's take a deep dive in the Optimised file...

First I would like to say a MASSIVE thanks to our man, [MENTION=1792279]ivicask[/MENTION] for his help. He has contributed a lot for this update to be at the tip of your fingers now so he deserves a big shoutout! :good: :highfive: And of course a lot of thanks to my team mates [MENTION=4388232]ZeroInfinity[/MENTION] and [MENTION=4645599]DeeZZ_NuuZZ[/MENTION] for their accurate tests and help. I owe them a lot as well :)

Without further redo, let's get started with what this file actually does.

(*)

Based on the HTC 10 thermal config file

This new file is not based on the Nexus 6P file anymore, rather based on HTC's recent flagship dubbed the 10, which means we get their proprietary thermal protection for some parts that weren't monitored by the older files like the modem, emmc and others. Which means you get a safer and much more optimized file now. :good:

(*)

Integrated HTC's task migration actions back

Also one of the things that were missing in the older Nexus 6P based files was the task migration, hence you felt the lightning speed of the phone no matter what the temperature or the core count of the big cluster was, and also that was why there were some situations like browsing were the phone heated up fairly quick and was causing us a lot of headaches. Now, we gain them back, which means, the phone's temperature should not rise as quick as it used to be in some situations like browsing and others.

(*)

Slacker trimmed hotplug policies

One of the things that were featured in my recent tests was "Rotary hotplug" where I tried to imitate that of the OnePlus 2 where it tries to decrease thermals by rotating the positions of the active cores. However, OnePlus uses an Energy Aware Scheduler (EAS) which is responsible in monitoring every core's temperature and manages the whole thing. Sadly tho, we have no EAS here and I tried to imitate this by changing the active cores' position every 1C difference, but it was apparently useless after testing, and also their EAS used to change the active cores' position so frequent which is impossible to imitate.

Also I had a bit more aggressive hotplug policies than most people's taste so, I slackened it a bit now since we have the task migration back ;)

(*)

Decoupled GPU throttling!

What used to happen was GPU was being throttled by battery temps, which used to drop the performance a lot in games that do need this GPU power and not the CPU. So what we have basically done here in the file (all credits goes to [MENTION=1792279]ivicask[/MENTION] ) is separating the GPU throttling from the battery temperature thresholds, which means, that when certain temperature barrier is reached, it only throttles the CPU to cools things down and leave the GPU alone, which results in much much much better graphical performance since we unleashed the lion from its thermal cage now, and the same cool temperatures you like since the CPU is already throttling and tasks are headed to/migrated from the clusters properly now! This is the biggest change in the Optimised file imo, since this balances things up now instead of falsely butchering the GPU, we have it fledging its muscles and the CPU is only throttling ;)

The rest of the drill is pretty much known I guess :)

Here is how it throttles

36C -> Hexa-core (4:2 config) with little cores limited to 1.34 GHz

38C -> Penta-core (3:2 config) with big cores limited to 1.34 GHz

40C -> Penta-core (3:2 config) with big cores limited to 1.25 GHz

Frank Note: For those who want to increase the minimum performance of their phones, install EX Kernel by flar2 and then navigate to the "minimum performance level" in the EX Kernel Manager app in the CPU tab, and increase it in increments of 10% till you reach your desired minimum performance. However, put in mind that nothing beats physics, which means that more performance means CPU throttling is slackened, which means the big cores are allowed to operate more and therefore, there might be a temperature rise, minimal though I guess :D

I want to end this post with massive thanks again to [MENTION=1792279]ivicask[/MENTION] for his works and efforts, without him this Optimised file would have not seen the light of the day. And that goes without saying, thanks to my Team Helix members [MENTION=4388232]ZeroInfinity[/MENTION] and [MENTION=4645599]DeeZZ_NuuZZ[/MENTION] for their help in the numerous tests of mine haha :D :highfive:

Will support this post with some stats, credits goes to [MENTION=4388232]ZeroInfinity[/MENTION] and [MENTION=4645599]DeeZZ_NuuZZ[/MENTION] for providing those :)

Now go enjoy your time and open up some Beer hehe :cowboy: