[PnP Tweak][13.01.][Android N]Custom Interactive Gov. Profiles [Battery/Performance]

Search This thread

Freak07

Recognized Developer / Recognized Contributor
Jan 2, 2011
4,874
15,555
Hey to all,

im proud to present you now the first pnp tweak that is modded accordingly to the butterfly and ghostpepper mods over from the nexus 5x and 6p forums. And now also to hawktail and glassfish. I tried to find the settings that are working best for our beloved HTC 10. Basically, these are governor profiles, which are trying to always bring the best possible smoothness based on the load, while conserving your precious battery. Consider these an evolution to my previous script method.

So additionally to the tweaked interactive governor what will I get?

- no 50fps lock when not touching the Screen
- more Performance than stock
- less throttling (hopefully)
- better battery life, but as we all know this might depend on the user.

my advice is to try all profiles and choose what suits you best.


Descriptions of the different profiles:

Butterfly
A culmination of all strategies, provides smoothest performance of all currently published settings, though battery savings are a little more modest. Excellent for light and moderate users; heavy/marathon users might want to check out a different setting profile as it gets battery intense with heavy usage.

Ghostpepper
Uses a quantized, frequency-aligned parametric curve to influence low core clock rates while providing extremely smooth transitions from each clock rate and exceptional battery life. Good for light to medium usage and multitasking.
http://forum.xda-developers.com/nexus-5x/general/guide-advanced-interactive-governor-t3269557

Hawktail
A short Explanation of HawkTail. This is the most balanced Profile of all. CPU goes back to idle very fast while still being aggressive enough to not cause stutters.

Glassfish
Description of GlassFish. Because the Approach is universal and the Profile has a relatively Long Input boost it might not be as advanced as the other profiles.

I�´d highly recommend to try these values as it gave me a significant boost in battery life. here are screenshots:
https://drive.google.com/file/d/0BxbxiBXaZVu-N1lsRTMyZ2hsY1k/view?usp=sharing
https://drive.google.com/file/d/0BxbxiBXaZVu-N1MzamRvM2FVZlk/view?usp=sharing

Announcement

I´d highly recommend to try the new profiles with raised minimum frequencies. I did test it and it doesn´t seem to effect battery life in an unacceptable way. So for me the gains outweigh the little bit of extra power cost.


FAQ:

Q: Is this the same as the previous scripts?
A: @ivicask was so kind to tweak the pnp binary for me and integrate my scripts into it. So now there is no need to disable pnp any longer via scripts and it allows me to integrate the values deeper in the system. I tested both, ghostpepper and butterfly, extensively for over a week and they work splendid for me!

Q: Does this work together with other pnp tweaks like @ivicask ´s?
A: No. There is only one pnp binary and when flashing one you will loose the other.

Q: @ivicask ´s mod also has modded thermal config file. i want to use your mod but also use @ivicask ´s thermal config file?
A: Flash @ivicask ´s mod first and flash mine afterwards.

Q: What base is this mod for?
A: This mod will work on base 1.50 and higher.

Q: Can I use the EX Kernel Manager Scripts that are linked in the explanation?
A: No these are for nexus phones with different socs (hexa/quadcore)

Q: What value should I set for the min Performance Level?
A: You can let it at the Default 60. However if you like to have more Performance 80 is still okay if your device does not overheat.



Instructions:
Just flash the attached zip and enjoy your phone.
If you want to go back to stock you also have an option inside the aroma installer.
If you are not sure whether the mod is applied or not sent me a screenshot from the governor tunables from your kernel app.

let me know if it brings a little battery boost for you. you may also let me know if you face performance issues or better if it improves your performance.
Thank you and have fun testing it. :)

Nougat Download is in the second post!!!

Downloads

https://www.androidfilehost.com/?w=files&flid=144458

Changelog PNP Aroma Versions:

Butterfly

v1: Initital Release


Ghostpepper

v1 - Initial Release
v1_raisedmin - Initital Release with raised minimum frequencies for both clusters

v2 - tweaked target loads to make it even more battery friendly
- performance should stay the same

v3 - raised min frequencies for both Clusters like it is intended on the original Profile
- tuned a few Things here and there
- better Video Playback for YouTube and Google Videos

Hawktail

v1 - Initial release
v1_raisedmin - Initial release with Minium frequencie for big cores raised like on the original profile
v2 - made the governor a little bit more aggressive to counter some stutters, increased overall smoothness
v2_raisedmin - also made the governor a little bit more aggressive, increased overall smoothness


Glassfish

v1 - Initial release


credits:
thanks to @Alcolawl for the script template
also thanks to @soniCron for the original thread
a huge thanks to @ivicask for putting and editing all my values and governor tweaks into the binary and the constant effort from him.
 
Last edited:

Freak07

Recognized Developer / Recognized Contributor
Jan 2, 2011
4,874
15,555
Android N:

Disclaimer: HTC changed pnpmgr on Android N and now some governor tunables amongst other things will not get applied correctly. Due to this we have now two seperate files.

First one is the pnp.xml
You have to copy it to System/etc and set permissions to 644 (rw-r--r--)

Second file is a script, which contains the governor configuration and various other tweaks.
This one, after downloading and unzipping, you have to copy either to system/etc/init.d or system/su.d or su/su.d and set permissions to 755 (rwxr-xr-x)

Afterwards do a reboot and wait 2 minutes until everything gets applied correctly. The script has a sleep timer set of about 1 Minute.

I edited the pnpmgr with the tweaks we had before Android N. So I removed various 50 and 30 fps caps. Various other Performance limitations. And probably I lot more i can´t remember right now.
The script is something new, partly based on alcolawls work and partly some ideas I had in the last few weeks.

The Download is here:
https://www.androidfilehost.com/?w=files&flid=144457


It would be great if I get Feedback here. My time atm is limited and I´d be glad if we all work together.
 
Last edited:
  • Like
Reactions: RogerF81

Alcolawl

Senior Member
Jul 21, 2012
1,398
2,278
New York
Glad to see these tweaks and this discussion flourish on other device forums. I'll try to keep an eye on this thread, as I plan on my next phone having a Snapdragon 820 in it. If someone can somehow dig up a general voltage table for this chipset (I realize these chips have dynamic voltage, but there must be a range), this would really help out. Especially if you want to make some truly device specific profiles.
 

Freak07

Recognized Developer / Recognized Contributor
Jan 2, 2011
4,874
15,555
Glad to see these tweaks and this discussion flourish on other device forums. I'll try to keep an eye on this thread, as I plan on my next phone having a Snapdragon 820 in it. If someone can somehow dig up a general voltage table for this chipset (I realize these chips have dynamic voltage, but there must be a range), this would really help out. Especially if you want to make some truly device specific profiles.


Something like this? :)

http://dl-1.va.us.xda-developers.co....png?key=Z4VTpZHNi-6qO9fDM7ncGg&ts=1470149810

If you want we can work together. Just pm me.
 

ivicask

Recognized Developer / Recognized Contributor
May 25, 2009
5,079
16,403
32
Zagreb
venomroms.com
Glad to see these tweaks and this discussion flourish on other device forums. I'll try to keep an eye on this thread, as I plan on my next phone having a Snapdragon 820 in it. If someone can somehow dig up a general voltage table for this chipset (I realize these chips have dynamic voltage, but there must be a range), this would really help out. Especially if you want to make some truly device specific profiles.

Getting to profiles is easy, tweaking them, not so much, an dev would need to implement this in custom kernel, also as each CPU is different i doubt an general profile would be possible, each user would need to fine tune it for their OWN cpu per every big or little core, and its questionable what are benefits of undervolting..

For example form my phone
Code:
/sys/devices/system/cpu/cpu0/opp_table


Code:
307200000 625000
422400000 630000
480000000 640000
556800000 650000
652800000 660000
729600000 670000
844800000 680000
960000000 705000
1036800000 725000
1113600000 740000
1190400000 755000
1228800000 765000
1324800000 810000
1401600000 845000
1478400000 885000
1593600000 935000
 
  • Like
Reactions: RogerF81

Freak07

Recognized Developer / Recognized Contributor
Jan 2, 2011
4,874
15,555
Getting to profiles is easy, tweaking them, not so much, an dev would need to implement this in custom kernel, also as each CPU is different i doubt an general profile would be possible, each user would need to fine tune it for their OWN cpu per every big or little core, and its questionable what are benefits of undervolting..

For example form my phone

The two little and big cores share the same table.
For the two little cores I have this:

307200000 625000
422400000 625000
480000000 625000
556800000 635000
652800000 655000
729600000 665000
844800000 680000
960000000 700000
1036800000 715000
1113600000 725000
1190400000 740000
1228800000 745000
1324800000 785000
1401600000 820000
1478400000 855000
1593600000 905000
1728000000 905000


For the big ones I have this:

307200000 625000
403200000 625000
480000000 625000
556800000 625000
652800000 625000
729600000 635000
806400000 640000
883200000 650000
940800000 650000
1036800000 665000
1113600000 675000
1190400000 685000
1248000000 690000
1324800000 715000
1401600000 740000
1478400000 770000
1555200000 795000
1632000000 820000
1708800000 845000
1785600000 870000
1824000000 885000
1920000000 920000
1996800000 945000
2073600000 970000
2150400000 995000
2265600000 995000

so there still may be a general scheme where you may base the values on.
 
Last edited:

ivicask

Recognized Developer / Recognized Contributor
May 25, 2009
5,079
16,403
32
Zagreb
venomroms.com
The two little and big cores share the same table.
For the two little cores I have this:

307200000 625000
422400000 625000
480000000 625000
556800000 635000
652800000 655000
729600000 665000
844800000 680000
960000000 700000
1036800000 715000
1113600000 725000
1190400000 740000
1228800000 745000
1324800000 785000
1401600000 820000
1478400000 855000
1593600000 905000
1728000000 905000


For the big ones I have this:

307200000 625000
403200000 625000
480000000 625000
556800000 625000
652800000 625000
729600000 635000
806400000 640000
883200000 650000
940800000 650000
1036800000 665000
1113600000 675000
1190400000 685000
1248000000 690000
1324800000 715000
1401600000 740000
1478400000 770000
1555200000 795000
1632000000 820000
1708800000 845000
1785600000 870000
1824000000 885000
1920000000 920000
1996800000 945000
2073600000 970000
2150400000 995000
2265600000 995000

so there still may be a general scheme where you may base the values on.

Yea i ment you need to tune big and small core, and each CPU is different, some values may crash for users with lower quality cut CPU, or whats called..
 

Freak07

Recognized Developer / Recognized Contributor
Jan 2, 2011
4,874
15,555
Yea i ment you need to tune big and small core, and each CPU is different, some values may crash for users with lower quality cut CPU, or whats called..
i think there is a misunderstanding. there won´t be any crashing because what @Alcolawl and me have in mind affects only the interactive governor. there will be no undervolting or anything that will cause instability from the kernel side.
the values from the interactive governor should just find the right frequency for each task based on the load. and the voltage from the frequency is also important because there are some frequencies that are more efficient than others. so we should try to find the most efficient frequencies. and the not so efficient ones will be not used much.
 

Alcolawl

Senior Member
Jul 21, 2012
1,398
2,278
New York
i think there is a misunderstanding. there won´t be any crashing because what @Alcolawl and me have in mind affects only the interactive governor. there will be no undervolting or anything that will cause instability from the kernel side.
the values from the interactive governor should just find the right frequency for each task based on the load. and the voltage from the frequency is also important because there are some frequencies that are more efficient than others. so we should try to find the most efficient frequencies. and the not so efficient ones will be not used much.

Correct. Undervolting these newer big.LITTLE CPUs is a no-no. Additionally, the amount of data you have for the SD 820's voltage usage should be sufficient enough to put together a sheet for an average voltage for each frequency thus making your decision to either skip or utilize a frequency much easier.
 

Haldi4803

Senior Member
Oct 14, 2010
3,861
1,567
Amazon Fire HD 8 and HD 10
Xperia XZ2
Correct. Undervolting these newer big.LITTLE CPUs is a no-no. Additionally, the amount of data you have for the SD 820's voltage usage should be sufficient enough to put together a sheet for an average voltage for each frequency thus making your decision to either skip or utilize a frequency much easier.

You might want to take a look at this thread :)
collected all values here and manually typed them into a sheet. also added mine.
if someone can find all the values in the kernel source, i'd make a proper sheet.
attachment.php


I've tried some performance/Efficienty tests here and there.
Using Trepn Profiler in Flight Mode with WiFi off to get a stable output of Powerdrain (because QC for some reason decided to prevent realtime reading and limited it to once every 30sec......) Running StabilityTest App to get a constant maximum Load on all active cores and with PnPMGR disabled (and Task migration fixed on 100) I've got some Usage Values here:
https://docs.google.com/spreadsheets/d/1eVeWSd22SV5QXf3ATUxjTCFUH9v8VsI4t-1vcig4A68/edit#gid=0 (Sheet "StabilityTest" Row E and L)
But yeah..... no guarantee on accuracy... i don't have a Monsoon :(
 

Freak07

Recognized Developer / Recognized Contributor
Jan 2, 2011
4,874
15,555
Getting quite good battery life with butterfly inspired profile :cowboy:
 

Attachments

  • Screenshot_20160803-173140.png
    Screenshot_20160803-173140.png
    130 KB · Views: 650
  • Screenshot_20160803-173135.png
    Screenshot_20160803-173135.png
    170.7 KB · Views: 642

Freak07

Recognized Developer / Recognized Contributor
Jan 2, 2011
4,874
15,555
BTW....
You don't have 1324mhz max frequency for certain apps in this build?
And it has stock HTC Task migration right?
I remember seeing 1,3 GHz as Max Freq for Google Maps. Didn't change this until now.
Task Migration isn't changed in pnp binary. But I set Mine to 75 via exkm.
 

Freak07

Recognized Developer / Recognized Contributor
Jan 2, 2011
4,874
15,555
Hööö?
Okay, you're right EX Kernel has modified Task Migration without touching PnP files.
But yet I have to deactivate PnPmgr if I want Task Migration to be stuck when the phone gets too hot....
WTF?
Settings are in Kernel but activation is done via PnPmgr?

No. I think when the phone runs under normal temperature the exkm task migration is used. When phone reaches a certain temperature pnp and thermal config is triggered anyway and may override the standard profile and its settings.
But you may have to ask @flar2 or @ivicask for this. Maybe they can explain it with greater accuracy.
 

Top Liked Posts

  • There are no posts matching your filters.
  • 26
    Hey to all,

    im proud to present you now the first pnp tweak that is modded accordingly to the butterfly and ghostpepper mods over from the nexus 5x and 6p forums. And now also to hawktail and glassfish. I tried to find the settings that are working best for our beloved HTC 10. Basically, these are governor profiles, which are trying to always bring the best possible smoothness based on the load, while conserving your precious battery. Consider these an evolution to my previous script method.

    So additionally to the tweaked interactive governor what will I get?

    - no 50fps lock when not touching the Screen
    - more Performance than stock
    - less throttling (hopefully)
    - better battery life, but as we all know this might depend on the user.

    my advice is to try all profiles and choose what suits you best.


    Descriptions of the different profiles:

    Butterfly
    A culmination of all strategies, provides smoothest performance of all currently published settings, though battery savings are a little more modest. Excellent for light and moderate users; heavy/marathon users might want to check out a different setting profile as it gets battery intense with heavy usage.

    Ghostpepper
    Uses a quantized, frequency-aligned parametric curve to influence low core clock rates while providing extremely smooth transitions from each clock rate and exceptional battery life. Good for light to medium usage and multitasking.
    http://forum.xda-developers.com/nexus-5x/general/guide-advanced-interactive-governor-t3269557

    Hawktail
    A short Explanation of HawkTail. This is the most balanced Profile of all. CPU goes back to idle very fast while still being aggressive enough to not cause stutters.

    Glassfish
    Description of GlassFish. Because the Approach is universal and the Profile has a relatively Long Input boost it might not be as advanced as the other profiles.

    I�´d highly recommend to try these values as it gave me a significant boost in battery life. here are screenshots:
    https://drive.google.com/file/d/0BxbxiBXaZVu-N1lsRTMyZ2hsY1k/view?usp=sharing
    https://drive.google.com/file/d/0BxbxiBXaZVu-N1MzamRvM2FVZlk/view?usp=sharing

    Announcement

    I´d highly recommend to try the new profiles with raised minimum frequencies. I did test it and it doesn´t seem to effect battery life in an unacceptable way. So for me the gains outweigh the little bit of extra power cost.


    FAQ:

    Q: Is this the same as the previous scripts?
    A: @ivicask was so kind to tweak the pnp binary for me and integrate my scripts into it. So now there is no need to disable pnp any longer via scripts and it allows me to integrate the values deeper in the system. I tested both, ghostpepper and butterfly, extensively for over a week and they work splendid for me!

    Q: Does this work together with other pnp tweaks like @ivicask ´s?
    A: No. There is only one pnp binary and when flashing one you will loose the other.

    Q: @ivicask ´s mod also has modded thermal config file. i want to use your mod but also use @ivicask ´s thermal config file?
    A: Flash @ivicask ´s mod first and flash mine afterwards.

    Q: What base is this mod for?
    A: This mod will work on base 1.50 and higher.

    Q: Can I use the EX Kernel Manager Scripts that are linked in the explanation?
    A: No these are for nexus phones with different socs (hexa/quadcore)

    Q: What value should I set for the min Performance Level?
    A: You can let it at the Default 60. However if you like to have more Performance 80 is still okay if your device does not overheat.



    Instructions:
    Just flash the attached zip and enjoy your phone.
    If you want to go back to stock you also have an option inside the aroma installer.
    If you are not sure whether the mod is applied or not sent me a screenshot from the governor tunables from your kernel app.

    let me know if it brings a little battery boost for you. you may also let me know if you face performance issues or better if it improves your performance.
    Thank you and have fun testing it. :)

    Nougat Download is in the second post!!!

    Downloads

    https://www.androidfilehost.com/?w=files&flid=144458

    Changelog PNP Aroma Versions:

    Butterfly

    v1: Initital Release


    Ghostpepper

    v1 - Initial Release
    v1_raisedmin - Initital Release with raised minimum frequencies for both clusters

    v2 - tweaked target loads to make it even more battery friendly
    - performance should stay the same

    v3 - raised min frequencies for both Clusters like it is intended on the original Profile
    - tuned a few Things here and there
    - better Video Playback for YouTube and Google Videos

    Hawktail

    v1 - Initial release
    v1_raisedmin - Initial release with Minium frequencie for big cores raised like on the original profile
    v2 - made the governor a little bit more aggressive to counter some stutters, increased overall smoothness
    v2_raisedmin - also made the governor a little bit more aggressive, increased overall smoothness


    Glassfish

    v1 - Initial release


    credits:
    thanks to @Alcolawl for the script template
    also thanks to @soniCron for the original thread
    a huge thanks to @ivicask for putting and editing all my values and governor tweaks into the binary and the constant effort from him.
    13
    hey Girls and guys :D

    androidfilehost let me finally upload the new Version.

    There are quite a few new Things here

    - tweaked Migration for big and Little Cluster in general
    - tweaked Migration for big and Little Cluster when launching an app
    - when the phone is idling (while screen is on) the Little cores get limited to 1,2 ghz
    - minor other changes and fixes

    with this Version the big Cluster is used more often. More Tasks are scheduled to be handled by the big Cluster.
    Means basically two Things:
    Performance is increased ( especially apps open really fast now)
    battery life may be a Little bit increased as well because the Tasks get done faster and the phone goes to idle more quickly.

    Special thanks to @Kyuubi10 for testing and confirming this behaviour.

    here is the download link:
    https://www.androidfilehost.com/?fid=385026487222272095

    the file can also be found in the Folders from the download link on the first post.


    have a nice day all and have fun testing the new Version.
    10
    Nougat Update Coming

    Hey to all :)

    I hope that I can provide you all soon with an update for nougat. Maybe it will be a little Christmas present.

    Stay tuned and have a nice day :)
    9
    hey guys and Girls :)
    I know it was quite a Long time since i released something new but now I have quite a few Things I worked on.

    First @crescal made me Aware of two new profiles over at the Nexus Forums.
    The first is GlassFish. It should be somewhat universal for all devices. So I did not tweak that much. I did not test it extensively but it seems to work quite well.
    However the Minimum frequency for the big Cluster is raised in the original Profile on the Nexus Forums.
    With my Aroma installer you will have two choices.
    Glassfish has min frequency set to 300mhz for both big and Little cores.
    Glassfish_aggressive has the min frequency for the big Cluster raised to 652mhz just like it is intended on the original Profile.

    HawkTail did Need a few more tweaks for our chip as it is designed for the Nexus 6p. I think I found good settings and it would be great if you can Report back what you get.
    On this Profile, just like on glassfish it is intended to have a raised min frequency for the big cores. So I made two Aroma installers.
    The Default V1 from Hawktail has the min frequencies for both Clusters set to 300mhz.
    The Hawktail_raisedmin zip has the Minimum from both big cores set to 652mhz. I did make testing on this and it seems to have no big Impact on battery life while increasing performace. However be sure to Report back.

    lastly I also updated ghostpepper Profile to v3.
    the new Version has slightly raised Minimum frequencies for both Clusters. I repeat myself but it doesn´t seem to have a negative Impact on battery life while getting good Performance gain. This was also intended on the original ghostpepper Profile from the Nexus Forums. However it did take me quite Long to implement this to the pnp binary.

    please feel free to try everything out and be sure to Report back. :)
    have a nice day all.

    edit: links are up on the first post now
    8
    Update

    new ghostpepper version uploaded.
    Changelog:

    Ghostpepper V2

    - tweaked target loads to make it even more battery friendly
    - performance should stay the same
Our Apps
Get our official app!
The best way to access XDA on your phone
Nav Gestures
Add swipe gestures to any Android
One Handed Mode
Eases uses one hand with your phone