APP ❯ ROOT ❯❯ Subcore - Adaptive Daemon - v1.0 - Paid Software Announcement and Discussion

Code:
#include "std/disclaimer.h"
/*
* I am not responsible for bricked devices, dead SD cards,
* thermonuclear war, or you getting fired because the alarm app failed. Please
* do some research if you have any concerns about features included in this software
* before using it! YOU are choosing to make these modifications, and if
* you point the finger at me for messing up your device, I will laugh at you.
*/
What Is It
Subcore is an root daemon that utilizes various sensors in the device to systematically apply different usage profiles. The goal is to achieve a balance based on the user's workload, rather than relying on the CPU governor to make bias assumptions about the current workload.
How Does It Work
Subcore reads and writes to system files on the device to determine which profile to place the device into. These interfaces include:
• Active CPU load
• Available CPU cores
• Available CPU governors
• Available CPU frequencies
• Available GPU load
• Available GPU frequencies
• Current battery capacity
• Battery state (charging / discharging)
• Screen state
​◦ State Notifier (primary choice)
◦ Power Suspend (secondary choice)
◦ Framebuffer interface (tertiary choice)
• Available device memory
• Max device memory
• Available IO schedulers
• Block readahead
• Block swappiness
• Block cache pressure
• Block dirty rations
• Random entropy
• Block overcommit
• Block page cluster
• Block dirty centisecs
• Block LMK
• Block laptop mode
• Block KSM
• Uniquely Generated Interactive Tunables
• Uniquely Generated Schedutil Tunables
User Prediction Algorithm
Without some form of user prediction, a game could begin to lag for a moment during a loading scene, where the load requirement dips. To counteract this, Subcore implements a user prediction algorithm that attempts to maintain fluidity in heavy applications, even during moments of low load. It works by determining repetitive load averages, and scanning less often when the load is consistent. This results in far less lag spikes when playing intensive games.
Power Aware Algorithm
Since Subcore is a low-level (yet userspace) tool, it has direct access to battery statistics. When charging (and screen on), Subcore will boost your performance to the highest performing profile to ensure the user experiences UI/UX conformity, disregarding the energy limitation. Additionally, when Subcore detects the device is at 15% battery or less, it will half the loadavg, which means it requires twice as much CPU load to enter the next profile. Likewise, at 5% battery or less, Subcore locks the device into the lowest profile, which is optimized for deep sleep or idle, sacrificing a chunk of performance to battery. This setting can be disabled by toggling "Disable Power Aware" in the Subcore GUI app.
RUPG - Realtime Unique Profile Generation
Subcore implements a new concept that I call RUPG. What makes Subcore special is the fact that it is compatible with essentially all devices. At runtime, Subcore initially gathers heaps of data to generate numerous device-specific profiles based on various factors. These generated profiles are heavily optimized for each device, so that each user achieves the most efficient software experience for the available hardware/software provided. These profiles are then saved in memory and are marked for deletion when Subcore exits. Some examples where RUPG is utilized is in the generation of device specific LMK offsets (minfree). Each device has a different RAM size, so Subcore must manually calculate the optimum LMK minfree sizes for each offset vector (VERY_LIGHT --> VERY_AGGRESSIVE). Subcore also utilizes RUPG in the production of the governor tunables. Each device has a different SOC CPU frequency table, which must be accounted for. These profiles are generated automatically by the binary, so the user doesn't need to tune anything themselves.
Race To Idle
Research proves that when completing a task, less resources are eaten when boosting to a slightly higher frequency for a short time, rather than a low frequency for longer. Subcore takes full advantage of this theory and applies special tunables for each profile. Each Subcore profile has a different goal to achieve. The UI/UX is the main profile that takes full advantage of RTI. This profile tunes the governor to stay at minimum frequencies until a small workload is requested. It then jumps up a frequency level to complete the task faster, then it instantly shoots back to minimum frequency if all other tasks are completed. If a heavy task comes up, but not quite heavy enough to trigger a profile change, the UI/UX profile will handle it by jumping another 1-2 frequency levels. Finishing the work requested, the loadavg will quickly shoot down and the governor will return to idle, saving battery yet increasing performance; it sounds impossible, but in practice, it works better than expected.
Performance == Battery
It sounds impossible. How can an app save power, but also make my device perform better? Here's why it works. Think about battery and performance as independent spectrums. Just because you have one doesn't mean you can't have the other. By working efficiently, Subcore can actually improve performance on some devices. This is because Subcore doesn't just tune your device for battery, it also applies VM tweaks, MM tweaks, Block tweaks, and much more. During my testing phase, many of my testers were telling me how Subcore strangely caused some tasks to perform better than usual. This included UI/UX smoothness, app start times, Camera HDR rendering, file IO (such as zipping a large file), and some other tasks. I realized that the tweaks that Subcore applies improve battery by improving performance in areas that don't affect battery as much. For example, something as basic as IO readahead will cause a marginal impact on battery, but the Block performance benefit that comes with a higher readahead can cause IO tasks to finish much faster. Applying the concept of Race To Idle, the disk performance benefit helps the device finish its current task faster, allowing the CPUs to reach deep sleep sooner, and in turn, providing better battery.
Hyper Optimizing
Subcore is written in native C++. In fact, the Android app for Subcore just forks the included binary based on the device architecture. Since Subcore is written in C++, it is light, fast, and pretty tiny. It is also entirely independent from Java code entirely. Once it's started, the Subcore app can be killed fully (even force quit), and the daemon will persist, since it is the parent of its own process. Using `top`, you can see Subcore isn't even on the list. Every single line of the C++ code is written to utilize the least amount of memory, and run as efficiently as possible. It utilizes C++11 inlines, uint*_t, -Ofast, --strip-all, custom built NDK clang toolchains from source, and far more optimization. Subcore includes C++STL in the binary as well, so it is portable and is contained all in one binary. Subcore is also compiled in ARM, ARM64, x86, x86_64. MIPS is not supported at this time.
Automatic Backup/Restore Algorithm
Since Subcore writes to a large portion of your sysctl, many of your kernel manager tweaks would be written over until they are reapplied on the next boot. Luckily, I spent the extra time to implement an automatic backup and restore algorithm to save the device's current settings on the start of Subcore. On sending a SIGINT or SIGTERM to Subcore, it will restore the user settings before exiting. This way, you don't need to reboot each time you stop Subcore. NOTE: If you toggle Start On Boot to Subcore, there is a high probability that it will start before your kernel manager's apply on boot will. This means that Subcore won't backup the proper data, so when you stop Subcore, your kernel manager tweaks won't be applied. To solve this, either reduce the timeout for starting on boot for your kernel manager, or start Subcore manually after each boot.
Results
When you start using Subcore, it'll feel too good to be true. But stats don't lie. I will provide quotes from my testers, along with screenshots of my testers and my battery life improvement. I urge everyone that tries Subcore to post your results, along with the device model you are using. If you have any questions about how Subcore works, or if you have any questions at all, please contact me. I'd be more than happy to address your concerns.
Testers
I'd like to personally thank all of my testers for sacrificing their phones to my code. Each and every one of them assisted in the stability of the program itself.
@SmallTarzan
@efranz
@kdrag0n
@ASHLEY117
@abhirams2020
@Mountaser_halak
Extra Notes
For Subcore to work properly, please ensure the following things are proper:
• Make sure Subcore is always granted root.
• Use Low-memory mode if the device does not have ZRAM or ZCACHE, or if you notice apps crashing / not opening.
Contact
I am always available for contact. Send me anything you want: questions, concerns, suggestions, comments, assistance, thank you messages, etc. I always appreciate messages from users
Gmail: [email protected]
Telegram: @tytydraco
XDA: @tytydraco
Donate
When I released System Mods, users were always asking how they could donate. So I thought I'd post a PayPal link so you can donate if you really enjoy my work
Those who donate can request to be put on the XDA thread and I'll add you to the list of donators here. You can also write a message to post here if you can fit it.
https://www.paypal.me/TylerNijmeh
--DONATORS--
none yet
Download
Google Play
VirusTotal report:
arm64 raw binary: https://www.virustotal.com/#/file/5...3074755f96e516f20bb1f6fb85c95abf95a/detection
XDA:DevDB Information
Subcore, App for all devices (see above for details)
Contributors
tytydraco
Version Information
Status: Stable
Current Stable Version: 1.0
Stable Release Date: 2018-09-05
Created 2018-09-06
Last Updated 2018-09-05

Here are some quotes from my testers:
"With subcore on image processes faster ?" ~ Franz
"But I'd say gcam is a bit slower when subcore is off" ~ Franz
"Sorry been quiet and lurking but tested on stock soldiers ROM S9, Phh treble aosp and havoc device specific. Results are pretty impressive! Getting 20% more battery life and faster operations on stock based and aosp based but not much difference noticed with treble GSI" ~ Ashley117
"Subcore on: 866/4543, Subcore off: 772/2527" ~ Franz
"@tytydraco I think you will like this ^^ *photo of Antutu*: 147987 (Subcore on) vs 142286 (Subcore off)" ~ Franz
"It has more IQ than some of my classmates." ~ SmallTarzan

PROMO CODES
These are first come first serve. Here is 10 to start off. Enjoy!
0KKVAS9PEPU2X9JWP3Z2JXT
AW6VZ9WGPT3WSH0P9AUH40S
1FG32WUV2T02XBE8H0SRMKT
ECM1UY61V7V8295AFFZZ5QY
F836DQPKJ26RNW4Y49LAYEX
CZB08PFUV2MB3M8CP5J1RPK
8X8AHN7L5MCZ1KXVGW4B2W7
9YTQUQTFVZHNWXY3WT7S81M
JD8K4L46S40R61YWY0599JG
YCG4QQ36YXPF2LYXYPYG70K
Edit: all the promo codes were used. Sorry guys ?

Amazing battery life with only a slight impact on performance. I watched this mature from a minimal C++ program to a full-on app that balances performance and battery very well. Good luck!

Hi, mum! I'm on YouTube!

tytydraco said:
PROMO CODES
These are first come first serve. Here is 10 to start off. Enjoy!
0KKVAS9PEPU2X9JWP3Z2JXT
AW6VZ9WGPT3WSH0P9AUH40S
1FG32WUV2T02XBE8H0SRMKT
ECM1UY61V7V8295AFFZZ5QY
F836DQPKJ26RNW4Y49LAYEX
CZB08PFUV2MB3M8CP5J1RPK
8X8AHN7L5MCZ1KXVGW4B2W7
9YTQUQTFVZHNWXY3WT7S81M
JD8K4L46S40R61YWY0599JG
YCG4QQ36YXPF2LYXYPYG70K
Click to expand...
Click to collapse
Took F836DQPKJ26RNW4Y49LAYEX. Thanks for the code.

senpaidev said:
Took F836DQPKJ26RNW4Y49LAYEX. Thanks for the code.
Click to expand...
Click to collapse
No problem! Let me know how you like it, and please share the thread if you want

Claimed 9YTQUQTFVZHNWXY3WT7S81M
Thank you! Will test it out and provide some feedback soon.

tytydraco said:
PROMO CODES
These are first come first serve. Here is 10 to start off. Enjoy!
0KKVAS9PEPU2X9JWP3Z2JXT
AW6VZ9WGPT3WSH0P9AUH40S
1FG32WUV2T02XBE8H0SRMKT
ECM1UY61V7V8295AFFZZ5QY
F836DQPKJ26RNW4Y49LAYEX
CZB08PFUV2MB3M8CP5J1RPK
8X8AHN7L5MCZ1KXVGW4B2W7
9YTQUQTFVZHNWXY3WT7S81M
JD8K4L46S40R61YWY0599JG
YCG4QQ36YXPF2LYXYPYG70K
Click to expand...
Click to collapse
Oops!!! All those codes were redeemed. Do you have more? Please?

arunv707 said:
Oops!!! All those codes were redeemed. Do you have more? Please?
Click to expand...
Click to collapse
I won't be releasing any more on XDA, but if Android Police or Android Authority choose to sponsor my app, they will give people up to 20 promo codes.

Pleasure to test and 1 of the 1st apps I install in my daily flashing routine ??
Improving performance on GSI ROMs now I've noticed but only on Phh releases. Thank you again

I fixed the issue where some devices would get incredibly laggy. The cause for this was that my algorithm for determining the screen sleep state was faulty. The system would deliver inaccurate information for the variable I was tracking, so I switched to a new (updated) variable (specifically measured_fps. It is 0.0 when the screen is off). This should fix the lag for the Pixel 2 XL as well as some other devices.
I sincerely apologize to those affected, and I ask that you give Subcore another chance. I am passionate about this project, and I want my users to be satisfied. If you'd like a refund, email me and I can try to figure something out. Thank you.
Credit to log comes from Reddit user u/faz712. Thanks so much
Reddit thread: https://www.reddit.com/r/androidapps/comments/9deihr/app_root_subcore_adaptive_daemon_v10/

I use it on a S8 . After enabling, governor is schedutil and device is underclocked From 2,3 Ghz to 1066 Mhz . Is this underclock normal ? https://drive.google.com/file/d/1BG8ZyNH6LojgquYVZCWxxzNIWY39VUEV/view?usp=drivesdk Logcat when i Start subcore. @tytydraco

Re¢o said:
I use it on a S8 . After enabling, governor is schedutil and device is underclocked From 2,3 Ghz to 1066 Mhz . Is this underclock normal ? https://drive.google.com/file/d/1BG8ZyNH6LojgquYVZCWxxzNIWY39VUEV/view?usp=drivesdk Logcat when i Start subcore. @tytydraco
Click to expand...
Click to collapse
That's perfectly normal. That setting will keep changing depending on what you're doing. Don't change the settings as Subcore will handle it for you

tytydraco said:
That's perfectly normal. That setting will keep changing depending on what you're doing. Don't change the settings as Subcore will handle it for you
Click to expand...
Click to collapse
I used it for different things like casual Apps and some gaming but the Frequenz is still 1066Mhz and some Times i had little lags and device get hot. But when you say its normal i will tryit out for longer . But on thing i can say battery is very nice

Hello,
I am using S8 (Exynos) with velocity kernel. Do I need to enable any other settings in the app too? Also it doesn't look like it changes all values such as LMK. I checked that with MTweaks but didn't changed settings there ofc.
Also I was wondering if disabling debugging and IO stats would break the algorithm.

SH4M3 said:
Hello,
I am using S8 (Exynos) with velocity kernel. Do I need to enable any other settings in the app too? Also it doesn't look like it changes all values such as LMK. I checked that with MTweaks but didn't changed settings there ofc.
Also I was wondering if disabling debugging and IO stats would break the algorithm.
Click to expand...
Click to collapse
No, you're good to go. LMK is not tuned when memory awareness is disabled (which should be on Samsung ROMs).
On the kernel side, disabling debugging and IO stats won't break Subcore. It doesn't use those.

kdrag0n said:
No, you're good to go. LMK is not tuned when memory awareness is disabled (which should be on Samsung ROMs).
On the kernel side, disabling debugging and IO stats won't break Subcore. It doesn't use those.
Click to expand...
Click to collapse
Thx ^^ Great App btw

I am not able to download this app in play store, the search also does not show up this app. Please can some one give me a download link

cphilch said:
I am not able to download this app in play store, the search also does not show up this app. Please can some one give me a download link
Click to expand...
Click to collapse
Absolutely! As long as your region supports paid purchases, you should be able to download the app. Enjoy!
https://play.google.com/store/apps/details?id=com.draco.subcore

Related

[Android 2.1+] SysTune - Optimize under the hood of your system!

{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
SysTune
Optimize under the hood of your system!
** Root Rights required!!! **​
This is a system tuning and tweaking tool for advanced users with root access. It allows you to change various system settings to optimize your system.
This is my very first App on the Market. I am open for feedback and try at my best to solve any requests if possible.
It is very advised to properly inform yourself about those settings as i do not take any responsability for any damamge to your device.
NEW FEATURE
Changing priority of processes allows you to prevent lagging or other issues e.g. when a back ground process slow down your phone or you forground app has struggles to do its fluently.
See Help Tab for more informations before using this feature! More Informations and a small Guide will be available in the second or third post in the next days.
Note: The background service for monitoring processes to renice them causes no increased battery drain!
Features:
Changing min/max CPU frequency
Changing cpu governor
Changing advanced governor settings
Voltage Control (SVS and HAVS supported)
Block device settings like IO-Scheduler
Kernel (Scheduler) Tweaks
VM Tweaks
Changing priorities of active processes (renice)
Apply on Boot
Mulit-Core / -CPU support
Realtime CPU Clock Speed and "Time in State"-View of each Core/CPU
Save and load settings individually for each tab (press Menu).
Multi-Core/-CPU supporting CPU Stress Test (New)
Safe Mode ( see in-app Help for Informations )
..... more to come!
NOTE: The availability of the features depends on your system. E.g. if your installed kernel does not provide access to VDD Levels voltage control than it won't be available.
After installation take your time and read the informations on the Help-Tab.
Download on Market
************************************************
If somethings is not working as expected on your device
please post here or email me so that i can fix it for you!
I don't own every device out there
************************************************
​
The zip file for toggling Safe Mode that can be saved on your SD Card via the button in SysTune can also be found here attached to this post.
Thanks to...
Grzesiek Baran for the new Market Feature Image and his Status Bar Icons!
"The Unknown Noob" aka Daniel S. for his Status Bar Icons!
Download User Settings​
This is a section with user contributed settings files for SysTune. Anyone can submit their settings via attachment to a post.
Though i beg to follow some basic rules:
Tell which device, rom (version) and Kernel used
IMPORTANT: Date (and optinal a version number) of your settings. So we now if there was a modification meanwhile!
Short but clear explenation why you use this values
What you did to come to the conclusion to use them
[OPTIONAL] What you changed over the default values of your rom/kernel. (note which were the default values before the change!)
Please follow the rules to make it easier for others to judge if your settings are usefull for them.
A user's settings for CM 10.1 for DHD rom:
Device: Desire HD, Rom: [ROM][UNOFFICIAL] CyanogenMod 10.1 Nightlies / M-Series - nightly from 20.02.2013
Date: Feb., 20, 2013
No renicing used anymore
Using stock clocks and ondemand governor.
Ondemand Governor settings
Misc settings
A user's settings:
Device: Desire HD, Rom: SCI MIUI 1.11.25v1.0, Kernel: lordmod 8.5 cfs
Date: Nov., 30, 2011
Smoother and more battery friendly then default values.
I am using several benchmark apps to test different aspects. Also i am testing overall daily usage. For reliable tests i have some things i repeat to see how the impact of changes of the settings is. Benchmarks used are: NenaMark 2, An3DBenchXL, Quadrant (not very good though), AnTuTu, TAP Benchmark (for internal flash memory), SD Tools (for sd card).
CPU Settings: ondemand
Governor settings
Misc settings
For BFS kernel version use set rr_interval=2 in the misc tab under kernel settings. But for my Rom i stick to CFS currently.
Renice Settings
Some general tips:
The priorities influence the behaviour when two processes that want to do some work at the same time. It influences which process will get more cpu time, thus it may cause lags for the lower priority process.
So in general the default priority of 0 is the one you should keep for most of the processes. But there are some processes that maybe you are not using all the time, but when you want them to use you want them fast and lag free.An example for this is the "phone" process but also the systemui process can improve the behaviour of your GUI in general.
On the other side there are processes that need to do some work in the background. Such process could slow down or cause lags on your currently used app / foreground process. An example for this is the media scanner "android.process.media". Think of reducing its priority to prevent slowing down other things. You won't care if the media scan in the background would need a minute longer to finish if you get a more fluent foreground app
I also got user reports for apps like media players that since they increased their priority now work flawless.
A User's Renice Settings 12 Dec. 2011 (see used rom etc. above!)
Notess:
I increased the the priority for processes that need to respond fast when they actually are needed, like the phone process.
I also increased the priority of my keyoard app to improve its pop upp in some seldom but annoying situations. If you use more than one keyboard app just set an increased value of all of them. As you never will use two at the same time you do not need to decrease the priority of one of them
Beside of other stuff i also increased the priority of my used launcher, adw ex. Add your launcher or replace my entry with one for your launcher. I think com.android.launcher is the process name for the standard launcher. But as you are using it you can see its process in the list of the "add" dialog.
strange, where has the reply of user sergeybrin gone?
anyway, am open for suggestions and reports of issues. if anybody has tried it found that something is not working for their phone i would be thankfull to know what so i am able to fix that.
Optimal settings for LordMod 7.2BFS kernel
Hi a user thanks for the great app.
I'm on Alienmod's CM7 (nightly 208) with LordMod's 7.2BFS kernel and was wondering what the optimum settings are in the "Governor" tab?
I looked at your MIUI thread and saw that you have:
suspend_freq @ 614400
down_differential @ 15
sampling_down_factor @ 50
ignore_nice_load @ 0
up_threshold @ 85
powersave_bias @ 50
sampling_rate @ 80,000
io_is_busy @ 1
so I am using these settings and everything seems ok.. (im using ondemandX 230400min and 1152000max).
Are these settings ok to use for my ROM or are there better settings?
Also i'm currently -50mV undervolted.
Thanks!!
this are still the settings i use and i think they pretty much optimal for aosp roms for the dhd. edit: except that my max fre is 1075MHz
regarding undervolting: carefull and you should only undervolt one freq at a time then test that extesively (e.g. by setting min and max freq to it and running something stressing the cpu for a longer time).
in general it is only needed to undervolt the freqs close to your set max freq as undervolting only makes a significant difference on consumption if there is high load. and on high load your phone switches to higher freqs
p.s. glad you are happy with the app.
I recently discovered due to a nice customer that despite googles license code documentation the licensing server do not provide validation timeout infos. hence some customers may observed that the app failed licensing on connection issues.
Google documentation on this claimed it should work as i expected but it doesn't. Hence i just fixed this now myself and want to apologise for any issues caused by this. I will improve this further in the near future.
Great App
thank you!
@all: There are many roms out there with broken busybox installations. i already have some workaround built in to handle that. i just discovered that one of my workaround had a typo. so if someone tried the app and saw it not working as it should it probably got fixed with the most recent update to 1.2.6.
i would like to see why some people are cancelling the purchase as it is already possible to see exactly what it does on the screen shots. If something is not working as it should i can't fix it without feedback. too many roms and devices out there to have them all and being able to test against.
I've tested unsuccessfully on the tmo g2x running EaglesBlood latest (cm7 based) and the dragon kernal. By testing I mean the drop downs for CPU Max and min show a thin white bar with nothing selectable.
Edit: tested with another kernal, and my guess is they don't support your method for accessing the processors... but I've been wrong before.
thank you for the feedback. But i need the info provided by the feedback button. Please use the feedback button on the help tab to collect some information and send it via email.
if you do not want to send me an email you canstill use that button. it will collect some infos and save them on your sdcard as "systune.inf". cancel the email that opens up. the file will still remain on your sdcard.
attach it here to your next post (maybe you need to rename its extension to .txt). without that info there is nothing i could do.
p.s. you can look into that file to verify that nothing confidential is collected. it is plain text.
EDIT: i saw your edit. does this mean with the other kernel it worked? basically your guessing seems right. but the thing is that my method to acces this values is the ONLY one possible. it is done through the kernel exported values in the sysfs. this is basically the only way to access kernel values at runtime. this custom kernel(s) you are using are either not exporting these stuff or they are doing wrong (by convention).
in the latter case at least i could do a workaround to compensate for their wrong placement of the stuff.
The Load Settings dialog box is not working on BlackIce, same problem as I had on Hydr0g3nmod before. Box just displays Cancel and nowhere to select a file to load. Not critical but would be nice to have. Probably due to the super dark theme. Thanks!
Sent from my Desire HD using Tapatalk
cold y verify that it is indeed only due to the theme? i mean try pressing in the middle of the box where normally the entry of a file to load is located and see if it loads.
if it is just a theme issue, dark text on dark background, then you should inform paradoxx or alienmind about this as this is a bug on their rom. i am simpy using system default theme.
usefull for them to know is that the items to load are listed in a ListView using "android.R.layout.simple_list_item_1" for the items. With these infos they should be able to fix their theme.
p.s. new version with new features coming very soon.
a user said:
cold y verify that it is indeed only due to the theme? i mean try pressing in the middle of the box where normally the entry of a file to load is located and see if it loads.
if it is just a theme issue, dark text on dark background, then you should inform paradoxx or alienmind about this as this is a bug on their rom. i am simpy using system default theme.
usefull for them to know is that the items to load are listed in a ListView using "android.R.layout.simple_list_item_1" for the items. With these infos they should be able to fix their theme.
p.s. new version with new features coming very soon.
Click to expand...
Click to collapse
Thanks, no luck in finding the hidden dialog box but no big deal.I'll wait until the BlackIce theme fix is done, or who knows perhaps I'll be back on sci miui by then
Sent from my Desire HD using Tapatalk
New version with new features available.
Now it supports various kernel tweaks (cfs scheduler tweaks) and vm tweaks. You can find them in the Misc Tab. Also saving/loading is now available for the Misc Tab.
Hi my8,
Do you think that it could be useful to discuss our findings about the tuning of some parameters here or in another section?
Thanks for your VERY useful app.
normally i would say this should be in a device specific thread. but because i wont be allowed to open up a systune thread in each device subforum i think we could do it here.
so feel free to be the first.
as basic rules i think one should always include infos about device/rom/kernel to make the post actually usefull.
new version 1.3.2:
added tunable paramter for BFS kernels in the Kernel settings section under the Misc tab.
a user said:
normally i would say this should be in a device specific thread. but because i wont be allowed to open up a systune thread in each device subforum i think we could do it here.
so feel free to be the first.
as basic rules i think one should always include infos about device/rom/kernel to make the post actually usefull.
Click to expand...
Click to collapse
Ok thanks for that and also for v1.3.2.
I think also that here could be a good place for the discussion of some of the tunable parameters via systune app. Indeed, I think that there should be no such big difference from ROM to ROM (but probably more from device to device...).
This offers also the possibility to give (and get) some information about the parameters that are tunable via Systune.
Among the different group of parameters, due to personal interest, I want to focus on scheduler ones (CFS and now BFS (since v1.3.2)).
And first of all, some theory, because before tuning anything, it is EXTREEMELY IMPORTANT TO UNDERSTAND the meaning of these parameters: here below is a partial copy of http://doc.opensuse.org/products/opensuse/openSUSE/opensuse-tuning/cha.tuning.taskscheduler.html about CFS in opensuse distribution.
NB: I am not an expert in Android, but IMHO I thing that even if Android runs on linux, it must be a lot of difference between running a phone and a desktop. It is why, it is interesting to have this kind of discussion here.
The comment are personal and are there just to start the discussion....
My phone is a HTC Desire HD, with blackIce ROM with LordMod UE kernel v8 CFS.
sched_child_runs_first
A freshly forked child runs before the parent continues execution. Setting this parameter to 1 is beneficial for an application in which the child performs an execution after fork. For example make -j<NO_CPUS> performs better when sched_child_runs_first is turned off. The default value is 0.
OK default value seems logical for me.
sched_compat_yield
Enables the aggressive yield behavior of the old 0(1) scheduler. Java applications that use synchronization extensively perform better with this value set to 1. Only use it when you see a drop in performance. The default value is 0.
OK default value seems logical for me, but Dalvik being a Java VM, 1 could also be logical ?????
Expect applications that depend on the sched_yield() syscall behavior to perform better with the value set to 1.
sched_migration_cost
Amount of time after the last execution that a task is considered to be “cache hot” in migration decisions. A “hot” task is less likely to be migrated, so increasing this variable reduces task migrations. The default value is 500000 (ns).
If the CPU idle time is higher than expected when there are runnable processes, try reducing this value. If tasks bounce between CPUs or nodes too often, try increasing it.
In case of single core processor, IMHO I think that this value must be set high....
sched_latency_ns
Targeted preemption latency for CPU bound tasks. Increasing this variable increases a CPU bound task's timeslice. A task's timeslice is its weighted fair share of the scheduling period:
timeslice = scheduling period * (task's weight/total weight of tasks in the run queue)
The task's weight depends on the task's nice level and the scheduling policy. Minimum task weight for a SCHED_OTHER task is 15, corresponding to nice 19. The maximum task weight is 88761, corresponding to nice -20.
Timeslices become smaller as the load increases. When the number of runnable tasks exceeds sched_latency_ns/sched_min_granularity_ns, the slice becomes number_of_running_tasks * sched_min_granularity_ns. Prior to that, the slice is equal to sched_latency_ns.
This value also specifies the maximum amount of time during which a sleeping task is considered to be running for entitlement calculations. Increasing this variable increases the amount of time a waking task may consume before being preempted, thus increasing scheduler latency for CPU bound tasks. The default value is 20000000 (ns).
For a phone running with a processor > 1GHz I thing that 5000000 is a good value (to be discussed further)
sched_min_granularity_ns
Minimal preemption granularity for CPU bound tasks. See sched_latency_ns for details. The default value is 4000000 (ns).
Same as above with a suggested value of 1000000
sched_wakeup_granularity_ns
The wake-up preemption granularity. Increasing this variable reduces wake-up preemption, reducing disturbance of compute bound tasks. Lowering it improves wake-up latency and throughput for latency critical tasks, particularly when a short duty cycle load component must compete with CPU bound components. The default value is 5000000 (ns).
Same as above with a suggested value of 1000000
sched_nr_migrate
Controls how many tasks can be moved across processors through migration software interrupts (softirq). If a large number of tasks is created by SCHED_OTHER policy, they will all be run on the same processor. The default value is 32. Increasing this value gives a performance boost to large SCHED_OTHER threads at the expense of increased latencies for real-time tasks.
IMHO must be sed = 0 for single core processor....
[To be continued later.....]
I know this article already but good you posted it here.
Based on my understanding an tests i have the following suggestions:
Sched_compat_yield set to 0 seems to improve performance. Note this is not a java virtual machine. This is only based on my tests
Sched_latency_ns : I recently am testing very low values. Currently using 390000 and 130000 for the two granularity parameters.
It seems smoother without losing raw throughoutput performance.
Regarding the migration parameters.... we are running a single core device. hence I think it simply doesn't matter what values we have set there as no task will ever switch the CPU it is bound to.
But a test if set to 0 can reduce some overhead could be a worth try.
Sent from my HTC Desire HD using XDA App
a user said:
I know this article already but good you posted it here.
Based on my understanding an tests i have the following suggestions:
Sched_compat_yield set to 0 seems to improve performance. Note this is not a java virtual machine. This is only based on my tests
Sched_latency_ns : I recently am testing very low values. Currently using 390000 and 130000 for the two granularity parameters.
It seems smoother without losing raw throughoutput performance.
Regarding the migration parameters.... we are running a single core device. hence I think it simply doesn't matter what values we have set there as no task will ever switch the CPU it is bound to.
But a test if set to 0 can reduce some overhead could be a worth try.
Sent from my HTC Desire HD using XDA App
Click to expand...
Click to collapse
Ok and thanks for your answer even if I don't totally agree with your proposal.
Indeed, I think that going down to so small value could be a little bit risky in term of CPU load and throughput for processor bounded task (I know that they are quite unimportant in a phone). Nevertheless, I am now testing Sched_latency_ns 1000000 and 250000 for the two granularity parameters...
Now some words about BFS ( Brain **** Scheduler) introduced recently by M. Kolivas (see article here: http://ck.kolivas.org/patches/bfs/sched-BFS.txt).
"It was designed to be forward looking only, make the most of lower spec machines, and not scale to massive hardware. ie it is a desktop orientated scheduler, with extremely low latencies for excellent interactivity by design rather than "calculated", with rigid fairness, nice priority distribution and extreme scalability within normal load levels."
Here the only tunable parameter is rr_interval that is roughly equivalent to the latency [in ms]. The default value = 6 [ms] that seems ok for me (possible values 1 -> 1000).
[to be continued...]

Velocity Kernel (3.10.104) v14.0 (64-Bit) for Lollipop (5.1.1)/Marshmallow (6.0.x)

After a lot of testing and hours of hard-work, I have developed a kernel based on the latest sources. As the name of the kernel suggests, the primary focus of the kernel is speed and performance. As a result, I have fine-tuned and optimized this kernel to perform in the best possible manner. However, I haven't missed to look into the Battery issues of the phone. A lot of effort has been made to fix unnecessary consumption of battery along with regulated CPU usage. Further, I have worked really hard to include almost all features and fixes so as to make my kernel the most feature-packed All-in-One solution.
Main Features---
Display---
Support for kCAL Colour Control v2.0 (enhances Colour Vibrance and Intensity). (available as a Screen TAB in Kernel Adiutor).
Up-to-date LiveDisplay Driver.
Support for Colour Enhancement (Updated).
Support for HotPlugs---
MSM (Fast Lane Load)
Mako
AluCard
IntelliPlug
ThunderPlug
AutoSMP (Modified and Enhanced for big.LITTLE architecture by ME )
State Helper v2.0 (Modified and Enhanced for big.LITTLE architecture by ME )
MSM mP-Decision (Bricked)
Support for Governors---
Conservative
Darkness
ElementalX
LionFish
IntelliDemand
Interactive
OnDemand
Performance
PowerSave
SmartMax
Hyper
Wheatley
YankActive
AluCard
Support for I/O Schedulers---
FIOPS
BFQ v7r8 with Hierarchical Scheduling
ROW
NOOP
DeadLine
CFQ
SIO
CPU---
Fixed High-Load Average from UnInterruptible Waits (reduces CPU-Load even more in idle state).
Overclocked CPU upto 1.7GHz (big Cluster) and 1.2GHz (LITTLE Cluster) for Extreme Performance (Modified and Enhanced by ME ).
Proper and Uniform Frequency Table Format with 200MHz Gap between each Frequency
Support for Fast-IDLING of CPU (should reduce Power-Consumption a lot).
Support for Power Efficient WorkQueue to reduce Power-Consumption (available in CPU tab of Kernel Adiutor).
GPU---
Support for ADRENO-IDLER algorithm (saves a lot of Battery by reducing GPU Frequency to minimum when there is less load).
Altered GPU-Frequency Table for more Power-Savings without noticeable decrease in Performance.
Memory---
Support for Swap, FrontSwap, and zSwap techniques (improve performance significantly when zRAM is full).
Support for Memory Compaction (improves performance).
Support for CleanCache Driver (improves I/O performance).
Support for zsmAlloc with Page-Table Mapping techniques (improve memory performance).
Support for zRAM with LZ4 compression algorithm (improves performance by saving memory).
Battery---
Support for ARCH_Power to reduce Power-Consumption and increase Battery-Life.
Support for the new PowerSuspend algorithm (improves Battery-Life).
Support for preventing unnecessary WakeLocks (improves Battery-Life). (available under the Misc. Tab of Kernel Adiutor)
Support for ThunderCharge Current Control Driver v2.1 (accelerates Charging by a large margin).
Optimizations and Tweaks---
Based on the latest sources of CyanogenMod (CM) for Yu Yureka/Yureka PLUS.
Disabled CRC-Check for upto 30% faster I/O.
Support for FRandom RNG Driver (upto 50x faster than the default one).
Compiled with UberTC 4.9.4 Optimized for 64-BIT (Uber uses the latest of every component as well as increases the Battery-Life too).
Support for Touch-Boost and CPU-Boost (Updated).
Support for Vibration Intensity Control (available in Misc. TAB of Kernel Adiutor).
Lowest Possible CPU-Usage (a lot of tweaks have been implemented system-wide).
Support for various Wake-Up Gestures including D2W.
Disabled Debug-Info (should reduce the size of the kernel making it lighter).
Support for HMP Aware and Power-Aware Task Allocation (should improve Performance and Battery-Life).
Support for Faux Sound Control v4.1 (Modified and Enhanced by ME ).
Support for a Custom Thermal Driver with Optimized Core Control v2.0 (Better Heat-Management with Flexible Controls, Modified and Enhanced by ME ).
Support for Load Shifter Mechanism (allows more Power-Savings, built by ME ).
The above mentioned features are just the main ones (many are omitted due to word limit), there are many more small technical changes done to improve the overall experience. By the way, the number written after the # symbol in the "Kernel Version" available in About Phone section, tells the number of times I have compiled the kernel. That number alone is an evidence of the amount of time, hard-work and patience I have applied in developing this kernel.
I have tried my best to make my kernel the most polished one. From minor tweaks to major improvements, everything is perfectly done. Moreover, I'll update my kernel whenever a useful feature or new sources come out so as to make you people experience the best and the latest of everything.
I encourage all the people here to try this kernel and squeeze out every bit of performance from our hot-tempered Yu Yureka/Yureka Plus.
Notes---
1. This kernel performs best when used with ROMs based on the latest sources of CyanogenMod.
2. My kernel doesn't requires any other app except for Kernel Adiutor to control the features. Therefore, you people are free to uninstall any other Kernel-Management app. #NoHassles
3. The *NEW word written after a feature indicates that this feature is NOT present in any other Kernel at the time of release.
4. The words 'Modified and Enhanced' written after any Feature indicate that I, myself, have modified that feature to make it more Efficient for our specific Device.
Installation Instructions---
1. It is recommended to clean-flash the kernel if you face any problems such as LED not blinking, unstable frequencies, etc.
2. To download the kernel, head over to the ChangeLogs and Downloads post and select the version of kernel you want.
3. To install the kernel, just flash the .zip using TWRP recovery.
Credits---
1. Google (for everything related to Android)
2. Cyanogen (for Source Code)
3. Varun Chitre (for ThunderCharge)
4. Savoca (for kCAL Colour Control v2.0)
Changelogs and Download Links---
v14.0---
For Changelog and Download Link, refer here.
Recommended Settings---
Note---
1. Use Kernel Adiutor-MOD to apply settings!
Download Link for Kernel Adiutor-MOD---
https://github.com/yoinx/kernel_adiutor/raw/master/download/app/app-release.apk
2. Always set the Apply on Boot Delay to 20 seconds or more. This is useful to avoid situations in which a certain feature malfunctions everytime after it is enabled at boot and thus results in a bootloop. Setting the delay to a higher value allows to disable that particular feature before it gets enabled.
CPU TAB---
For Balanced Performance---
1. Set Min. to 200MHz and Max. to Max. Available for both Clusters.
2. Interactive/Impulse Governor for both Clusters.
3. Enable Schedule WorkQueues Toggle.
For Battery-Saving and Less Heat---
1. Set Min. to 200MHz and Max. to 1200MHz for big Cluster.
2. Darkness/LionFish Governor for both Clusters.
3. Enable Schedule WorkQueues Toggle.
CPU HotPlugs TAB---
Use AutoSMP if you want more Battery-Life and Decent Performance with Less Heating than Stock Kernel.
State Helper---
1. Max. Core Online (Screen On) at 6 (Useful for Gamers)---
More Battery-Saving and Lesser Heating than Stock Kernel.
2. Max. Core Online (Screen On) at 4 (Useful for Normal Usage)---
Excellent Battery-Saving and Minimal Heating but Lesser Performance than Stock Kernel.
3. Max. Core Online (Screen On) at 2 (Useful for those who don't play Games or do much Browsing)---
Extreme Battery-Saving and Least Heating but much Lower Performance than Stock Kernel.
Thermal TAB---
1. Least Heating Profile---
Enable Core Control.
Temperature Throttle at 45 C.
2. Balanced Heating Profile---
Enable Core Control.
Temperature Throttle at 60 C.
3. Gaming Heating Profile---
Disable Core Control.
Temperature Throttle at 75 C.
Note---
Keep rest of the Thermal Settings at Default Values for all Profiles!
GPU TAB---
Enable Adreno IDLER.
Screen TAB---
Improved Colour Enhancement is in-built in kernel. Still, this is what I use---
LiveDisplay---Night Mode
Minimum RGB Value---32
Saturation Intensity---48
Wake Controls TAB---
As per your own preference.
Sound TAB---
As per your preference.
Battery TAB---
I don't use ThunderCharge as I feel that the stock values provided by YU charge the phone within a decent time. So, again, use as per your preference. However, using Charge Rate beyond 1250mAh may damage the hardware.
I/O Scheduler TAB---
BFQ for both Internal and External Storage.
WakeLocks TAB---
Disable all (to Save Power). However, if you face any problems, then re-enable all.
Misc Controls TAB---
Disable Android Logging.
Init.d TAB---
Enable Emulate Option.
Leave the rest TABs as they are.
Note---
In order to reset settings to default, just Disable the Apply On Boot option of the particular TAB in Kernel Adiutor and reboot the phone.
ENJOY!!!
Reserved.
Shoaib05 said:
Reserved
Click to expand...
Click to collapse
Will this kernel work on stock cm12?????
as currently I'm using Sandy kernel
And getting average battery life and performance ????
gtsfreak said:
Will this kernel work on stock cm12?????
as currently I'm using Sandy kernel
And getting average battery life and performance ????
Click to expand...
Click to collapse
Since the stock CM12 ROM is based on the older sources, I doubt that my kernel will work perfectly. However, you may try and tell me whether it works or not. It would be really helpful.
By the way, which version of Sandy Kernel are you using?
Shoaib05 said:
Since the stock CM12 ROM is based on the older sources, I doubt that my kernel will work perfectly. However, you may try and tell me whether it works or not. It would be really helpful.
By the way, which version of Sandy Kernel are you using?
Click to expand...
Click to collapse
Sandy kernel v1.5
Battery life and performance is average
gtsfreak said:
Sandy kernel v1.5
Battery life and performance is average
Click to expand...
Click to collapse
Try mine if you're unhappy with the results you're getting with your current kernel.
However, I don't think everything will work i.e., LED or Camera but you'll get better performance and Battery-Life, this I can promise.
Support for Android Marshmallow (6.0) has been added!!! Check 2nd post for Download Link!!! (thanks to Hriday Sharma for the commits!)
From now onwards, this thread will not be maintained. Head to Yu Forums to stay updated!!!
Edit---
Thread will be maintained here on XDA too.
Kernel Manager ?
Shoaib many thanks for creating this for us ! God bless you !
Hi Dev Champs !
I am a noob when it comes.to Kernel and Kernel manager. I am a user of Yu Yureka running custom CM13 rom (Created by SantoshM) and im running Velocity 2.0+.
Can you pls suggest the best Kernal Manager in ur opinion. I am using Ex Kernal Manager right now.
Can you also walk me through the steps of setting up the best units for saving battery as well... Of course if thats not a lot of trouble.
download links not working , wanted to check this out with cm13 latest built
Update---
Velocity Kernel v14.0!!!
Changelog---
1. Merged Latest CM's Source Updates into Velocity's Source (contains many improvements).
2. Updated the Linux Base Version to the latest one of 3.10 branch i.e., 3.10.104 (contains BUG-Fixes). *NEW
3. Updated the PowerSuspend Drivers to the latest version i.e., v1.7 (should improve Battery-Life).
4. Added Support for Impulse 2016 Edition Governor (a Balanced Governor for smooth performance and decent Battery-Life). *NEW
5. Added Support for State Notifier Driver (an Optimized mechanism for knowing about Panel's State). *NEW
6. Tuned the LionFish Governor (for better Performance). *NEW
7. Modified the Touch-Boost to be user-controllable (In CM, it is enabled by default and is not user-controllable. This makes the Battery deplete much faster. In my kernel, it is disabled by default and is also user-controllable.). *NEW
8. Improved the Thermal Mechanism (better Heat-Management without much degradation in Performance). *NEW
9. Tuned the Interactive Governor for Efficient operation and more Power-Savings. *NEW
10. Removed Franco's Sound Control (Although, I ported it in the best possible manner, it still wasn't quite upto my standards.).
11. Removed the stock CyanogenMOD Core Control Feature (the current implementation wasn't as Efficient as it should have been in reducing Heat and improving Battery-Life). *NEW
12. Minor BUG-Fixes and Improvements.
Now, the Highlights of v14.0 (unique features which only Velocity Kernel offers for Yu-Devices)---
1. Core Control v2.0---
Built from scratch by me, this version of Core Control is much more efficient than the stock one. In this version, Cores are disabled according to temperature in a much more optimized manner. Further, this Core Control of mine, offers efficient Heat-Management as well as improved Battery-Life. To sum up, this is the best Core-Based Heat-Management Technique for Yu-Devices.
2. Faux Sound Control v4.1---
In this Sound Control, I have used Faux Sound v3.6 as base and on top of it, I have modified, fixed and enhanced the Driver. All of the changes are done by me! I have named this version as v4.1 because I have made 5 changes to the Driver (v3.6 + 5 Changes = v4.1). Coming to the point, this Sound Control is finally the best one. I have worked hours on it to port and fix it in the best way. Thus, now, there is no Low-Volume issue. Further, even the Negative Values work too. Also, the Volumes are boosted without distortion now i.e., higher Volumes can be achieved easily. Also, now, there is a fully functional Enable/Disable Toggle for Sound Control. To bring this feature and make it Compatible with the Modified Kernel Adiutor, I did a very clever workaround too. To sum up, this is indeed the best Sound Control for Yu-Devices with No BUGs.
3. Perfect Core-HotPlug Mechanism---
In this version of my kernel, I have added two HotPlugs, AutoSMP and State Helper. Now, you may ask what is unique about it? Well, I have just used these HotPlugs as base. On top of these HotPlugs, I have done huge modifications, wrote many new Codes and worked on them many hours and I am very happy with the results.
AutoSMP (Modified)---
I have modified this HotPlug to only work as an On/Off Toggle. I have removed all the Options and Codes to make this HotPlug lightweight. Th only function of this HotPlug now is to turn an Octa-Core Soc into a Quad-Core one retaining the HMP or big.LITTLE technique. This will allow much more Power-Savings without degrading Performance as well as lesser Heat too.
State Helper (Modified) v2.0---
I have modified this HotPlug to a great extent. The original State Helper was only meant for Normal Architectures and not big.LITTLE architectures. I worked on this HotPlug to make it support big.LITTLE architecture as well as I have Optimized it to Perform in an efficient way too. Also, I have fixed a critical BUG of this HotPlug. Further, I have removed the unnecessary Codes to make it lightweight. Since I have Optimized this HotPlug for big.LITTLE architecture, this HotPlug now offers the ability to disable the big Cluster completely. Further, this HotPlug also offers the ability to turn an Octa-Core HMP Soc to a Hexa-Core one just like the setup of Snapdragon 650. This Optimization allows for Extreme Power-Savings.
These Core-HotPlug mechanisms offer the best way to Control the Cores for managing Heat and Improving Battery-Life. The best part is that users can control these HotPlugs to find the Perfect Combination according their usage. Also, an important point about these HotPlugs is that they are not Load-Based ones. These HotPlugs don't use CPU-Resources and thus offer Better Battery-Life and Lesser CPU-Usage. To sum up, I have Modified and Optimized these HotPlug in the best possible manner. These HotPlugs are the best ones for Yu-Yureka/Yureka PLUS.
4. Perfect OverClock for Snapdragon 615 1st Gen SoC---
As you all know, our devices seem to use the 1st Gen of SD615 SoC. Probably, that's why, we have 1.5 GHz of Max. Frequency. Further, due to great variations among the same SoC, developing OC to work on every device is a very difficult task. The Max. Frequency that our SoC can run properly is 1.7GHz. Above it, the SoC fails to boot. Further, kernels which were offering OCs above 1.7GHz were containing fake OCs i.e., only the numbers change, not the actual Frequency. Now, after weeks of testing by myself as well as some very good testers, I have managed to find the perfect way of implementing the 1.7GHz and 1.2GHz OC Frequency for big and LITTLE Cluster respectively. In my implementation of the OC, I have applied an Efficient Voltage Distribution technique. This allows to not only consume the least amount of Power but also helps in achieving Perfect Stability i.e., the OC will work on every Device irrespective of Revisions. Further, people who choose to not use the OCs, then the kernel will return to use the stock voltages thus providing the same level of efficiency as the stock kernel.
5. Load Shifter---
As I have already discussed in the Load Shifter's own thread, this feature transfers the Workload from the big Cluster to the LITTLE CLuster. Even the Android Background Processes are forced to run on the LITTLE Cluster with the help of this feature. Since we use LITTLE Cluster for most of the tasks except Gaming, there are considerable Gains in Battery-Life as well as Lesser Production of Heat.
Notes---
1. Due to variations in SoC, the Sound Control will work properly at different levels of Volume for different people. For ex, value 5 of Mic Gain may be too loud for some but too low for others. So, you people have to find out the perfect value for yourselves. By the way, value 10 of Mic Gain is known to be the most suitable for every device.
2. In order to avoid conflicts, I have added a failsafe regarding Core-Control and Core-HotPlug Mechanism. This means, out of AutoSMP, State Helper and Core Control, only one can be used at a time. Even if you try to enable each one of them simultanouesly, they won't get enabled. I have done this to avoid malfunctions.
3. After manually changing the CPU Governor or Frequency, all the Cores will come online even if any HotPlug is enabled. So, you just need to re-enable any HotPlugs you were using in order to disable the Cores again.
4. Currently, AOSParadox ROM and a few other voLTE enabled ROMs too have 100% Core-Load Issue. This leads to more Heat-Generation. Further, High CPU-Usage makes Charging Time a lot slower as well as decreases the Battery-Life by a large margin. Until this BUG is fixed, nothing much can be done to improve upon these areas.
5. Sometimes, enabling Core Control may cause the ROM to hang. In this case, rebooting via ROM doesn't work. So, just press and hold Power button until the phone restarts.
6. When Core 0 gets disabled (due to Core Control or State Helper HotPlug), Adiutor fails to get Frequency and Governor information and hence shows 0MHz in Frequency Panel and Blank Space in Governor Panel. This is normal. In this case, if you need to change Governor or Frequency, then you need to disable Core Control or State Helper HotPlug as the case may be. After this, force close Adiutor and then re-open it. This will make Adiutor get CPU information again.
Recommended Settings are also updated!!!
That's it folks! My best creation till date for Yu-Devices. My aim was always to improve the experience we get from our phones and provide the users with control over everything. Today, I have achieved that goal. This became possible only due to months of hard-work by me and testing-work done by some very reliable testers.
Testers (without these people, developing a Stable and BUG-Free Kernel would be near to impossible)---
dixan43
Bijendra barman
Frozen_Lemon
Ryuk and many others were there, thanks to all of you!!!
Download Links---
For all Lollipop (5.1.1) and Yu-OS ROMs---
https://www.androidfilehost.com/?fid=385035244224394352
For Marshmallow (6.0.x) ROMs only---
https://www.androidfilehost.com/?fid=529152257862677379
For AOSParadox 3.x (6.0.x) ROM only---
https://www.androidfilehost.com/?fid=529152257862677377
Enjoy the most efficient and thoughtfully made Kernel.
Shoiab I always use urs kernel as a daily driver but there is low mic volume issue in V14 and unable to resolve that so back to V13 ...so plz share the recommended settings for V13 ....
I hv yu yureka plus running on RRrom6.0.1.Is this kernel good for the rom
Will it work for my yu yureka plus 5510?I have RR rom installed based on Android MM6.0.1
Does this kernel work for 7.1.1 yureka builds?
Sent from my YU5510 using Tapatalk
Same question here does this kernel work for yu yureka on LineageOS 14.1 ?
Sent from my AO5510 using XDA-Developers Legacy app
---------- Post added at 06:29 AM ---------- Previous post was at 06:21 AM ----------
Shoaib05 said:
Update---
Velocity Kernel v14.0!!!
Changelog---
1. Merged Latest CM's Source Updates into Velocity's Source (contains many improvements).
2. Updated the Linux Base Version to the latest one of 3.10 branch i.e., 3.10.104 (contains BUG-Fixes). *NEW
3. Updated the PowerSuspend Drivers to the latest version i.e., v1.7 (should improve Battery-Life).
4. Added Support for Impulse 2016 Edition Governor (a Balanced Governor for smooth performance and decent Battery-Life). *NEW
5. Added Support for State Notifier Driver (an Optimized mechanism for knowing about Panel's State). *NEW
6. Tuned the LionFish Governor (for better Performance). *NEW
7. Modified the Touch-Boost to be user-controllable (In CM, it is enabled by default and is not user-controllable. This makes the Battery deplete much faster. In my kernel, it is disabled by default and is also user-controllable.). *NEW
8. Improved the Thermal Mechanism (better Heat-Management without much degradation in Performance). *NEW
9. Tuned the Interactive Governor for Efficient operation and more Power-Savings. *NEW
10. Removed Franco's Sound Control (Although, I ported it in the best possible manner, it still wasn't quite upto my standards.).
11. Removed the stock CyanogenMOD Core Control Feature (the current implementation wasn't as Efficient as it should have been in reducing Heat and improving Battery-Life). *NEW
12. Minor BUG-Fixes and Improvements.
Now, the Highlights of v14.0 (unique features which only Velocity Kernel offers for Yu-Devices)---
1. Core Control v2.0---
Built from scratch by me, this version of Core Control is much more efficient than the stock one. In this version, Cores are disabled according to temperature in a much more optimized manner. Further, this Core Control of mine, offers efficient Heat-Management as well as improved Battery-Life. To sum up, this is the best Core-Based Heat-Management Technique for Yu-Devices.
2. Faux Sound Control v4.1---
In this Sound Control, I have used Faux Sound v3.6 as base and on top of it, I have modified, fixed and enhanced the Driver. All of the changes are done by me! I have named this version as v4.1 because I have made 5 changes to the Driver (v3.6 + 5 Changes = v4.1). Coming to the point, this Sound Control is finally the best one. I have worked hours on it to port and fix it in the best way. Thus, now, there is no Low-Volume issue. Further, even the Negative Values work too. Also, the Volumes are boosted without distortion now i.e., higher Volumes can be achieved easily. Also, now, there is a fully functional Enable/Disable Toggle for Sound Control. To bring this feature and make it Compatible with the Modified Kernel Adiutor, I did a very clever workaround too. To sum up, this is indeed the best Sound Control for Yu-Devices with No BUGs.
3. Perfect Core-HotPlug Mechanism---
In this version of my kernel, I have added two HotPlugs, AutoSMP and State Helper. Now, you may ask what is unique about it? Well, I have just used these HotPlugs as base. On top of these HotPlugs, I have done huge modifications, wrote many new Codes and worked on them many hours and I am very happy with the results.
AutoSMP (Modified)---
I have modified this HotPlug to only work as an On/Off Toggle. I have removed all the Options and Codes to make this HotPlug lightweight. Th only function of this HotPlug now is to turn an Octa-Core Soc into a Quad-Core one retaining the HMP or big.LITTLE technique. This will allow much more Power-Savings without degrading Performance as well as lesser Heat too.
State Helper (Modified) v2.0---
I have modified this HotPlug to a great extent. The original State Helper was only meant for Normal Architectures and not big.LITTLE architectures. I worked on this HotPlug to make it support big.LITTLE architecture as well as I have Optimized it to Perform in an efficient way too. Also, I have fixed a critical BUG of this HotPlug. Further, I have removed the unnecessary Codes to make it lightweight. Since I have Optimized this HotPlug for big.LITTLE architecture, this HotPlug now offers the ability to disable the big Cluster completely. Further, this HotPlug also offers the ability to turn an Octa-Core HMP Soc to a Hexa-Core one just like the setup of Snapdragon 650. This Optimization allows for Extreme Power-Savings.
These Core-HotPlug mechanisms offer the best way to Control the Cores for managing Heat and Improving Battery-Life. The best part is that users can control these HotPlugs to find the Perfect Combination according their usage. Also, an important point about these HotPlugs is that they are not Load-Based ones. These HotPlugs don't use CPU-Resources and thus offer Better Battery-Life and Lesser CPU-Usage. To sum up, I have Modified and Optimized these HotPlug in the best possible manner. These HotPlugs are the best ones for Yu-Yureka/Yureka PLUS.
4. Perfect OverClock for Snapdragon 615 1st Gen SoC---
As you all know, our devices seem to use the 1st Gen of SD615 SoC. Probably, that's why, we have 1.5 GHz of Max. Frequency. Further, due to great variations among the same SoC, developing OC to work on every device is a very difficult task. The Max. Frequency that our SoC can run properly is 1.7GHz. Above it, the SoC fails to boot. Further, kernels which were offering OCs above 1.7GHz were containing fake OCs i.e., only the numbers change, not the actual Frequency. Now, after weeks of testing by myself as well as some very good testers, I have managed to find the perfect way of implementing the 1.7GHz and 1.2GHz OC Frequency for big and LITTLE Cluster respectively. In my implementation of the OC, I have applied an Efficient Voltage Distribution technique. This allows to not only consume the least amount of Power but also helps in achieving Perfect Stability i.e., the OC will work on every Device irrespective of Revisions. Further, people who choose to not use the OCs, then the kernel will return to use the stock voltages thus providing the same level of efficiency as the stock kernel.
5. Load Shifter---
As I have already discussed in the Load Shifter's own thread, this feature transfers the Workload from the big Cluster to the LITTLE CLuster. Even the Android Background Processes are forced to run on the LITTLE Cluster with the help of this feature. Since we use LITTLE Cluster for most of the tasks except Gaming, there are considerable Gains in Battery-Life as well as Lesser Production of Heat.
Notes---
1. Due to variations in SoC, the Sound Control will work properly at different levels of Volume for different people. For ex, value 5 of Mic Gain may be too loud for some but too low for others. So, you people have to find out the perfect value for yourselves. By the way, value 10 of Mic Gain is known to be the most suitable for every device.
2. In order to avoid conflicts, I have added a failsafe regarding Core-Control and Core-HotPlug Mechanism. This means, out of AutoSMP, State Helper and Core Control, only one can be used at a time. Even if you try to enable each one of them simultanouesly, they won't get enabled. I have done this to avoid malfunctions.
3. After manually changing the CPU Governor or Frequency, all the Cores will come online even if any HotPlug is enabled. So, you just need to re-enable any HotPlugs you were using in order to disable the Cores again.
4. Currently, AOSParadox ROM and a few other voLTE enabled ROMs too have 100% Core-Load Issue. This leads to more Heat-Generation. Further, High CPU-Usage makes Charging Time a lot slower as well as decreases the Battery-Life by a large margin. Until this BUG is fixed, nothing much can be done to improve upon these areas.
5. Sometimes, enabling Core Control may cause the ROM to hang. In this case, rebooting via ROM doesn't work. So, just press and hold Power button until the phone restarts.
6. When Core 0 gets disabled (due to Core Control or State Helper HotPlug), Adiutor fails to get Frequency and Governor information and hence shows 0MHz in Frequency Panel and Blank Space in Governor Panel. This is normal. In this case, if you need to change Governor or Frequency, then you need to disable Core Control or State Helper HotPlug as the case may be. After this, force close Adiutor and then re-open it. This will make Adiutor get CPU information again.
Recommended Settings are also updated!!!
That's it folks! My best creation till date for Yu-Devices. My aim was always to improve the experience we get from our phones and provide the users with control over everything. Today, I have achieved that goal. This became possible only due to months of hard-work by me and testing-work done by some very reliable testers.
Testers (without these people, developing a Stable and BUG-Free Kernel would be near to impossible)---
dixan43
Bijendra barman
Frozen_Lemon
Ryuk and many others were there, thanks to all of you!!!
Download Links---
For all Lollipop (5.1.1) and Yu-OS ROMs---
https://www.androidfilehost.com/?fid=385035244224394352
For Marshmallow (6.0.x) ROMs only---
https://www.androidfilehost.com/?fid=529152257862677379
For AOSParadox 3.x (6.0.x) ROM only---
https://www.androidfilehost.com/?fid=529152257862677377
Enjoy the most efficient and thoughtfully made Kernel.
Click to expand...
Click to collapse
Shoaib05 please can you make it for Yu yureka on LineageOS 14.1 ?
CAN YOU MAKE IT FULL VOLTE FOR IT CAN DO HD VOICE CALLING BUT VIDEO AND WI-FI CALLINGS ARE STILL MISSING , i searched all threads on XDA but still can't find what i am looking for.
Sent from my AO5510 using XDA-Developers Legacy app
I Clean Flash the Velocity Kernel 14.0 Old but after flashing WiFi and WiFi Hotspot Not Working
How to Solve this Issue
Flashed on CM 12.1
Sent from my YU5510A using Tapatalk
O
Sent from my AO5510 using XDA-Developers Legacy app

[AKT] Advanced Kernel Tweaks v1.6 FINAL | Insane Battery & Performance(SD820/1|OP3/T)

[AKT] Advanced Kernel Tweaks v1.6 FINAL | Insane Battery & Performance(SD820/1|OP3/T)
IMPORTANT ANNOUNCEMENT #2​REALLY IMPORTANT ANNOUNCEMENT:
Please read it!​
We ( @patalao and me) have decided to create a new thread since the @op from the thread we were using seems to be inactive, so doing this will give us more freedom for editing the main post and providing you guys with more information.
I also need to thanks all the awesome people that have made this possible, therefore thanks to @soniCron and @Alcolawl for being the creators of the original guide and all the fantastic tweaks that you have made.
Thanks to @flar2 for his great app (EXKM) and his kernel and to @patalao for his superb tweaks and all the help he has provided me.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
All that you are about to read is based on THIS THREAD so go there and thanks @soniCron for it.
I'll go ahead and copy and paste some of the firsts paragraphs so those who don't know what this all is about can understand a bit.
I'm about to tell you how to get buttery smooth, lag-free performance with insanely good battery life, using an old school governor featured in practically every kernel... This tweak is applicable to every phone with any ROM or kernel--stock or custom--that provides the Interactive Governor.
Yeah, yeah... everyone promises good battery with great performance, but who actually delivers? Maybe it isn't as smooth as you want, or maybe it requires something your kernel or ROM don't support. Or maybe the battery life promises just aren't what you expected. There's always some awful compromise. Not here!
This isn't a guide to get 36 hour battery life... provided you never use your phone. That's deep sleep optimization, which is lovely and all, but what good is the phone if you can never use it?! And with the new Marshmallow Doze feature, this strategy is becoming a thing of the past. What I'm talking about is 7-14 hour screen on, actual hands-on usage times! Without compromising anything, you can get 7-8 hour screen on usage with regular, no-compromise usage habits: daytime visible screen brightness, both radios on, sync on, network location on, all the regular usage features, the whole kit and kaboodle... all smooth as a baby's butt and snappy as a Slim Jim! (Up to 14+ hours if you can stand minimum brightness and WiFi-only with a custom ROM and other stuff turned off! And this is with stock voltages and full frequency range--you'll likely get even more if you choose to optimize those as well!)
However, it should be noted that this does not apply to gaming, heavy camera use, etc. Anything that is an automatic battery killer in and of itself. There's nothing that can be done about anything that forces the phone to utilize its maximum resources all the time. But you should know that by now. Further, this guide is about optimizing the CPU as much as possible. It does not cover things like eliminating wakelocks so your phone sleeps well, removing unnecessary and battery draining stock apps, keeping your screen brightness down*, and all that stuff that's been covered in other posts ad infinitum. Those optimizations are up to you.
If you really want to know the principles of this tweaks, please go to this thread since there everything is really well explained and I know you guys just want to apply the tweak and forget about everything behind it, so just keep scrolling!
Voltages and Frequencies:
So recently I have been investigating about the Voltages of our device (since that is a really useful information to know) before that we only have the Nominal frequencies (If you don't know what I am talking about go ahead and read @soniCron thread because I won't explain it) we could develop some tweaks with that, but we were pretty much making blind shots, guessing and hoping that all will be right. Well, now that we have all this information we can optimize our tweaks even more so expect new updates and rework for the current tweaks and of course new ones.
I have made a little spreadsheet with the Nominal and Efficient frequencies for you guys, so you can take a look and maybe modify our tweaks to your needs, since, all of them have been tested by @patalao, our tester and me, which involves that are tested without usage and not yours.
No much to say about frequencies so we move right away to the voltages
We have more to talk about this, as you can see OverClocking have NO down points since it will consume the same voltage as the maximum stock clock speed and it will give use more performance. UPDATE: It's true that the voltage it's the same, but there is some downpoint which are explained in this posts. Here and here Thanks to @bedalus for pointing itn out!
Notice that the voltages on CM ROMs are higher that on OOS and that the values were shown there are from OOS. We are already working on a flashable zip or script for modifying those values since cannot be modified anyway else.
On the Snapdragon 820 (Our chipset) things have changed a lot from the previous chipsets like the 808 (Nexus 5X) and 810 (Nexus 6P). Now we are back to the Quad-Core, which is good, more cores= more battery consumption but we continue with the Little.BIG set up, where we have a Little Cluster (really efficient and fast) and a Big Cluster (slow but good for heavy loads). On previous chipsets, the Little kernel was really good on low-mid clock speeds and the Big cluster was really good on high frequencies and bad on low. Well, this is still true, but not we don't have such difference than before. Our Little cluster is going to be "the main thing" as it was before, but now the Big cluster has a really low consumption on lower frequencies so can be really good for sustained loads which only demand low~mid clock speeds as well it will be used as a quick burst for help the Little cluster to not reach High freq here it's not that efficient anymore.
How this affect your device (ROM/KERNEL)
You might NOT get the same results as me or other, it will depend mainly on your usage, secondly on the kernel and finally on the ROM that you currently using.
Not all the tweaks work the same way for certain kernel, what I mean with this is that the battery life/performance might be better running X kernel with X tweak, but the same tweak applied to another kernel might not be that good at all
Wait what? What you want to tell me is that some kernel is better than other, right?
Yes and No, Some kernel is better than other but also, some kernel perform better with certain tweaks as can be seen in the following screenshots (This test have been performed using AnTuTu tester with a clean install of last RR + the Kernel, nothing else. I know is a benchmark and the perfect thing whole be a real life test but that takes days, so If somebody wants to do it, I'll post the results)
Disclaimer:: This is just a profile (tweaks) for the interactive governor. If you experience any unexpected fc, reboots, massive stuttering/lagging, etc, this profile isn't most likely not responsible for that.
What About Touchboost?
Since I've noticed that a lot of people was asking about Thouchboost, I decided to add this little explanation from @soniCron
" Touchboost is a nifty feature in a lot of kernels (including stock on Nexus 5X) that jumps up the frequency so that you experience minimal lag. However, with all the above settings, touchboost is usually detrimental to the efficiency of the device!
We generally want to keep the CPU on the lowest possible frequency as much as possible, and touchboost interferes with that. Further, because we've set up the maximal and minimal efficient clock rates, as well as burst processing from the 2nd CPU core, we don't need touchboost!
If your kernel allows you to shut it off, try to do so and see if the responsiveness of your device is acceptable. On the OP3 (and pretty much all the devices), touchboost adds no perceptual performance gain and only hurts efficiency and battery life. If your kernel doesn't allow you to turn off touchboost, try another one.
Your battery life will thank you! "
With all that been said, you shouldn't confuse Touchboost with CPU Boost and more specifically Input boost. Both are used to boost the clock speed of our device whenever we touch the touchscreen, so we don't suffer any lags.
The difference is that Input boost can be configured and Touchboost cannot, making it a really inefficient.
MY DEVICE LAGS!!! WHY?!?!
First of all, it's a "normal" thing, as I have stated before, all these tweaks have been done for fit my usage or certain usage which is most likely not the same as yours. Because this, when the are put on a certain scenario the might stutter or lag just a bit (If you are experimenting huge lags, you have done something wrong)
And yes, this can be fixed. We have a couple of ways of fixing it:
First of all, Check If the tweaks have been applied correctly
Our first one is modifying the Input boost (not touchboost) most of our tweaks have an already established Input boost clock speeds and time, you can incise does too a bit. For example, we have 960(Mhz) for all the CPU at 40ms you could bump it up to ~1036(Mhz) and 42ms, don't modify too much this values since it will potentially increase your battery drain.
Our second tool for fixing lags is min_sample_time , my recommendation is to increase the value by 5000 each time till you no longer suffer any stutter or lag.
Try another tweak, for example;
If you are using Project X.A.N.A Battery, try using Balanced option...
Still having lag?
Get rid of unnecessary (background-)apps
Try a different IO-Scheduler
Try another profile
My phone still uses too much battery
First of all, Check If the tweaks have been applied correctly
Make sure that you have disabled touchboost.
Set brightness to a lower level.
Use a dark / black theme
Don't play games all day
Try other tweak, for example;
If you are using Project Zhana Balanced, try using Battery option...
JOIN OUR SLACK CHANNEL FOR TESTING BETA TWEAKS
VOTE FOR YOUR FAVORITE PROFILE
I'll keep this post updated with new information, so make sure to subscribe to it.:good:
The Profiles:
=================================================================================================
Introducing Advanced Kernel Tweaks [A·K·T] | All-in-one Project
All the profiles will be featured there, some make sure to check it out!
Over here
=================================================================================================
Project Zhana & X.A.N.A v4.2: (Everybody should try it!!)
Go to this post for the full lenght explanation.
This tweak has all the new discovery voltages and some other new techniques, giving us great battery life without losing performance
The battery could be even better than FairPark *14 h SOT*
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
Really well-defined clock speed escalation for a good battery and performance.
FairPark:
There have been a lot of controversy about this tweak lately. So after you complain, this will NOT work for all of you guys.
For me, it works perfectly and it accomplished all that I'm going to state, but maybe you guys will experiment lags.
This tweak is not for everyone.
Probably the most battery efficient tweak ever created, fantastic battery with extremely smooth performance even playing games as Clash Royale or Pok?mon GO.
You can easily get 10 hours SOT or even more (If you don't play any games) just texting, browsing and so on could give you even 12 hours SOT.
HawkPepper:
As you might notice by the name is the union of the 2 tweaks above, GhostPepper for the Big cluster and HawkTail for the Little cluster, as GhoostPepper is highly optimized for the Big cluster and HawkTail for the Little.
Performance wise should be as good as GhostPepper but in terms of battery should be considerably better.
EOL Profiles:
You can still use them, but I won't give further support for them
HawkTail:
An advanced, modern profile that is both battery efficient and highly performant
It should be as battery efficient as GhostPepper but giving that extra performance for "high-end" games, as that was the only complaint on GhostPepper
Ketrel:
Really battery efficient tweak but only for light usage, when comes to playing games and some heavy multitasking the battery drain will increase exponentially
DOWNLOADS:
~ [AKT] Profiles ~
Old profiles:
Project Zhana & X.A.N.A
GhostPepper
HawkTail
HawkPepper
FairPark
Kestrel
Changelog:
Code:
27/10/16: Updated all the profiles. Applying the new discoveries about voltages and so on.
02/11/16: Adding Project Zhana v3.0
15/11/16: Adding Project X.A.N.A v3.1 | Updating to Project Zhana to version 3.1
10/12/16: Project Zhana & X.A.N.A v3.3
02/01/17: [A·K·T] + Project Zhana & X.A.N.A v4.0 + EOL Profiles
22/01/17: [A·K·T] v1.2 + Project Zhana & X.A.N.A v4.2
FAQs:
Does this tweaks works with X ROM / X Kernel; OB10, Custom ROM, OOS4.0...??
YES, YES, YES. All the tweaks featured her works with ALL the available Kernels and ALL available ROMs for the OP3. So yes OBs(9,10,11....), yes custom ROMs, yes OOS 4.0
Will this work on my device?
[*]These tweaks are intended for the One Plus 3, although it should work on any device which features the Snapdragon 820 ( Moto Z, Xperia XZ, S6 ...)
HTC 10 Here is why and Here is the HTC10 Thread
Support for the OP3T and other Snapdragon 821 devices will come soon! Read more about it here.
My device Lags/Uses to much Battery/Is not longer smooth/It's really slow!! What do I do??
[*]Everything it's explained on the OP. I quote the part where that's explained
Asiier said:
MY DEVICE LAGS!!! WHY?!?!
First of all, it's a "normal" thing, as I have stated before, all these tweaks have been done for fit my usage or certain usage which is most likely not the same as yours. Because this, when the are put on a certain scenario the might stutter or lag just a bit (If you are experimenting huge lags, you have done something wrong)
And yes, this can be fixed. We have a couple of ways of fixing it:
First of all, Check If the tweaks have been applied correctly
Our first one is modifying the Input boost (not touchboost) most of our tweaks have an already established Input boost clock speeds and time, you can incise does too a bit. For example, we have 960(Mhz) for all the CPU at 40ms you could bump it up to ~1036(Mhz) and 42ms, don't modify too much this values since it will potentially increase your battery drain.
Our second tool for fixing lags is min_sample_time , my recommendation is to increase the value by 5000 each time till you no longer suffer any stutter or lag.
Try another tweak, for example;
If you are using Project X.A.N.A Battery, try using Balanced option...
Still having lag?
Get rid of unnecessary (background-)apps
Try a different IO-Scheduler
Try another profile
My phone still uses too much battery
First of all, Check If the tweaks have been applied correctly
Make sure that you have disabled touchboost.
Set brightness to a lower level.
Use a dark / black theme
Don't play games all day
Try other tweak, for example;
If you are using Project Zhana Balanced, try using Battery option...
Click to expand...
Click to collapse
Do I have to be rooted?
[*]Yes. See the fourth question and learn more about your device before trying to change things like governor settings!
How do I apply this tweaks?
Go to this post and scroll down till you see the instructions
In case you guys still want to use the old method:
Keep scrolling to the third post, all that you need is there
You can also check this video, as a picture is worth a thousand words - but a video, a million!
My settings don't show up after I reboot! What am I doing wrong??
If you are using [A·K·T] head to this post and scroll to the FAQs over there
If you are using EX Kernel Manager, tap the power icon to the right of the setting after you set it. If you are using a different kernel manager, check with that developer to see how it's implemented. Also, give the kernel manager a few minutes after the device boots. The settings aren't applied immediately, so check back after 3 minutes and you should see the correct values.
Why is one of my CPUs not letting me change a setting or set a certain frequency?
The device may be thermally throttling and had turned off that CPU or limited it. Turn off your device and let it cool for 5 minutes, then try again. (Keep it unplugged and make sure you don't have any apps running that might be trying to use a lot of CPU while the device is off.)
These settings don't work/I'm not getting great screen on time!
You probably haven't disabled touch boost. YOU MUST DISABLE TOUCHBOOST, OR THIS WON'T SAVE YOU JACK SQUAT!!
And keep in mind these tweaks have been tested on certain scenario that is not the same as yours
My kernel editor won't let me set [whatever]Mhz for a value you showed!
Either you have done something wrong, or you're using a kernel/device combo that isn't ElementalX on OP3, for which this guide was written. Follow the instructions in the first post to determine the appropriate settings for your own device!
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Community made Profiles:
Here will feature all the profiles that haven't been made by @patalao, @Mostafa Wael or myself
"Nameless" by @Senthil360
All the information and download link in his post.
LINK TO THE POST
Ok then.
First, thanks to @Asiier for making this thread with a more detailed explanation about the profiles, specially for our SD820.
As @Asiier said the profiles may not work the same for everyone because each one of us uses the phone different, so please take that in mind before filling the thread with questions why it works for Y but not for X.
HOW DID I START
I`ve started by releasing the Fusion Beta profile on Ex Kernel Manager thanks to @flar2.
After seeing almost all profiles from Nexus 5X and Nexus 6P threads i released the first version.
It was a fusion(that's why the name Fusion) of several profiles into one, but using the SD820 frequencies for our device.
After all this time and working alongside with great devs like @Asiier, @Mostafa Wael, @Senthil360 and many other users on our Slack channel i've improved my profiles to the point of releasing 2 new ones called FusionB and FusionP.
This time i've worked on them not just for me but for the entire community of our OP3, taking in mind tests maid by users on Slack channel (our private channel for development of profiles and much more).
Profiles
FusionB
This is a balanced profile.
Working alongside with testers and evolving from previous works i've came across with FusionB, a profile intended to be used out of the box with your phone.
You can expect a smooth experience without compromising battery to much.
This is based on the load percentage of the cpu.
Better than stock values, this profile should use almost all frequencies from little cluster(scale up one by one) and use the big cluster to more heavy duties till 1900 frequency jumping to the highest one just when needed.
FusionP
Based on FusionB this profile brings a more "agressive" way to scale frequencies.
It will scale frequencies sooner(regarding load values from cpu) and will use more the big cluster to provide more performance doing the tasks on hands.
Battery should not take a big hit but using heavy demanding tasks you can expect a higher drain.
Note:This aren't the normal profiles used some time ago.
This are beyond governor settings and go up till HMP values.
This will be provided as a single script on AKT script together with all the profiles from @Asiier, @Mostafa Wael and @Senthil360.
Older versions are still available below on hided content but won't be updated(at least some time soon).
Releases:
FusionB and FusionP ( 02 / 01 / 2017 )
Changelog:
New year,new start.
This will be first release.
Next updates will have changelogs accordling.
Download Section
AKT
Want to know what AKT means?
ALL IN ONE PROJECt
Installation:
#Download the tweak
#Enter into Recovery and flash the tweak
#Boot to system
#Open your terminal app and introduce:
#Code:
su
AKT
#Select the section you want ( Battery/Balanced/Performance)
#Select the profile you prefer
#Done!
OLD VERSIONS:
This are the old one's and will still be available on my AFH but won't be updated.
There are 3 categories of profiles.(maybe more will come)
Thunder
This was made thinking only on a very fluid experience
It is set for speed, not battery.
It`s a performance profile and intended more for 3D Gaming and for those apps that needs more "power" to have a fluid experience.
Fusion
Set for a balanced between performance and battery this one should be what most of users want.
It should give you more or less the same performance as stock but with an improvement on battery.
This is what you should expect more or less for the new Fusion(depending on many factors this could be or not achived by you):
Icecold
Set for extreme battery saving this one should suit those wich use the device for low end tasks.
This is an underclocked profile and because of that it isn't suitable for all.
Download Section
All said, you can get the profiles here:
Fusion
Thunder
Icecold
How to use a profile with Ex Kernel Manager App
How to use a profile?
1-You need Ex Kernel Manager App
2-Download the desired profile and rename it removing ". txt"
3-Move the profile to sdcard/ElementalX/gov_profiles.
4-Before using any profile please uncheck all "set on boot" in Ex kernel manager and then reboot.
5-After reboot load the profile and then set on boot the following:
For all the profiles including mine, @Asiier and @Mostafa Wael
On CPU tab:
Governor settings
Input boost frequencie and input boost milliseconds
Touchboost
Because my profiles (and future @Asiier profiles) have more than governor settings this is what you also need to set on boot on mine and @Asiier profiles:
Memory tab:
Low memory killer
Adaptive low memory killer
Dirty ratio
Dirty background ratio
Min free kbytes
Vfs cache pressure
On Miscellaneous tab:
I/O Scheduler
Advanced I/O options
Read ahead kb
Tcp congestion algorithm
On tools/user settings tab:
Swappiness (add this /proc/sys/vm/swappiness)
For Icecold profile set this extra to be applied on boot:
Cpu tab:
Max CPU frequencie (Big Cluster)
Graphics Tab:
Max GPU frequencie
Credits:
All credits goes for all the users that shared their own profiles on Nexus 5X and Nexus 6P respective threads and of course for Me @Asiier, @Mostafa Wael and @Senthil360 for bringing this ones to our device.​
Introducing...
Shotgun!​
Strategy​This profile's main goal is to provide absolute maximum performance when needed, but lies low quite well. You see, some times I see the CPU hitting some of the high freqs of 1190 while making something as simple as watching YouTube or playing some spotify tracks needlessly, and sometimes I feel it is a bit slower than it should be in things like brute multitasking. Most profiles do aim at bringing a mid-ground to rest on. But with the sensible words of one of my favourite idols Jeremy Clarkson, he says 'Power solves everything' and right he is. By eliminating the mid freqs of the Little cluster and efficiently using some specific frequency steps, you get some power savings by staying on lower freqs as much as possible, and even on brutal tasks you get the job done faster as well, since the CPU will give you all the power to finish the job as fast as it can, and hit back to idle faster. Some may be worried about the power consumption with that turbo policy, but as it can be viewed from @Asiier OP's graphs and info, the difference in the voltage is not that high to make you that worried at all, and even numbers say it. I got a mighty 7.5 hours SOT over more than a day on OOS 3.2.7 with Mono kernel (tbh i used to get that value, but now I get it so easily without any extra battery conservation techniques) and i get better performance as to my usage patterns. As for the big cluster, I chose to stick with the stock Big cluster settings for better efficiency with slight tweaks to make it a little bit more bursty and lie low quicker. @Asiier I must point out something there. In your OP you advised (sort of) to tweak the big Kryos to be acting in a bursty manner. Well that is partially right, coz these big Kryos are no A57s where they heat up badly if engaged, rather their sustainable performance is quite lovely, and the fact that as much as the little cluster being in charge of most of your tasks as the 'main cluster', it is not being relied on as much as it was in the S810, and the big cores take charge of the load much more than it was in the S810. So it is a bit tricky to tweak now, coz you don't want it to be very dormant like the A57 coz that will sacrifice performance and smoothness noticeably.
Also take that into consideration
Mostafa Wael said:
Also another thing that I want to clarify for everyone, what has the largest footprint in rendering some profiles laggy/more battery consuming or very efficient/lagfree is the ROM. You see, when you test the 'nominal' freq for a certain task, it also depends on the ROM. A quick example, if you wanted to see which is the nominal freq for scrolling a simple webpage or even a normal page without lags, by locking the freq to a certain step to test, while you do the scrolling test, there are background processes that inevitably take place whenever you use the phone. A stock OOS for instance potentially has more background processes running than say CM, and CM nightlies specially when they introduce a highly experimental change, can have some more background process (most likely you see the 'CyanogenMod system' ranking highest in your battery consumer apps) than a more stable nightly, and an AOSP may be having even less. A carefully debloated OOS can have less background services going on as well. Not to say a ROM is better than the other, but each ROM behaves uniquely and therefore when you scroll the webpage on say CM, it may be a tad smoother than when doing the same task on OOS with a specific profile, coz the frequency that is set to be used when scrolling the webpage, by any means, actually has to do the work of scrolling AND handle the background services running (be it a needless wakelock or a necessary service for some system apps or user apps, hence changing a CM nightly can actually cause some weird issues)
Now why don't you see this with the stock interactive governor settings? Coz it is like 'generic' settings that obeys these wakelocks and background services, and they will ramp up the freq readily with no 'restrictions', unlike custom settings profiles like mine, where I limit the CPU to use some certain freqs and cap the others, or Asiier's with whatever philosophy he uses.
In my opinion, the ROM has more effect on performance with each profile than a kernel. Of course a certain Kernel can have some battery tweaks or performance tweaks undergone, but they have the same effect as on the stock generic settings, in other words, these optimisations can already be felt even on stock settings and hence I sort of exclude it from the equation, since your target is to improve upon the stock governor settings
Click to expand...
Click to collapse
I suggest as always to turn off touchboost and use low input boost freqs for more time as always, but if you feel the need to use Touchboost or increase the input boost parameters, no problem at all. My usage is typing, reading, gaming for an hour or maybe slightly more, lots and lots of YouTube streaming and video playback, Spotify, WhatsApp and Telegram, XDA checking of course and some off-screen music playback. This profile has been tested on OOS 3.2.7 + Mono/Boeffla kernel, Arter97's CM13 + Arter97's custom kernel, OrionOS 11 Oct with its stock kernel
Downloads​ Shotgun_v1.0 EXKM profile here
init.d script here
Shotgun_v1.6 EXKM profile here
Shotgun_v1.7.6 EXKM profile here
->It is not 100% true that a newer version is better for you, but 99% it is <-
Changelist​
Shotgun v1.0
initial release
Shotgun v1.6
-> eliminated more freqs for both little and big clusters, big cluster should be a little bit more dormant. Should be much
smoother AND more battery friendly
Shotgun v1.7.6
-> should be working fine without ANY Touchboost/Input boost/Bob boost settings (yes set input_boost freq to 0 freq for
litte and big cores anf for 0 ms to turn it off)
-> more smooth and battery friendly
>>>Shotgun is EOL after v1.7.6<<<
Burnout PR​ -> Burnout PR1, make sure to apply the gears here
-> Burnout PR2 Golden!. No gears needed, this is the absolute performance you can get! Gamers be cautious, this is NOT intended for gaming at all. Heavy browsing might be a bit warmer than your taste too. I have added some changes that work well with AOSP/CM LineageOS?/CAF Nougat but it seems that OB9 does NOT work as well as I expected.
Legacy: (imo Burnout PR2 moved leaps after that, but i never delete my trials since we are not the same
An intermediate profile has been cooked as well, dubbed as Burnout_Extreme. Learn more about it here
People who fail to automatically load the settings after booting even though the slider has been set to apply the settings on boot please notify me. Hope it does not fail you! Big thanks to @weeka89 and everybody here on this thread and the slack group for testing, couldn't have been that great or refined without your help and time, very much appreciated :good:
Pcsx2006 said:
Guys forgive me but can these profiles be used on stock rom OOS 3.2.7?
Sent from my ONEPLUS A3003 using Tapatalk
Click to expand...
Click to collapse
Yes, but you need custom kernel and app for changing tunables.
No custom kernel needed.
Just needs Interactive governor wich all of them brings.
patalao said:
No custom kernel needed.
Just needs Interactive governor wich all of them brings.
Click to expand...
Click to collapse
True. But there are also schedulers (zen) tuned in your profiles that are not found in stock kernel?
Yes, but if there`s no other tweaks in the kernel like the stock one it will only change governor settings and all other settings will remain untuched.
So I just need EX Kernel Manager app and load profile and good to go?
Sent from my ONEPLUS A3003 using Tapatalk
That`s it.
Just load the profile you want and enjoy it.
Pretty intresting. What values do u lads recommend for touchboost? Im on hawkpeper.
You could try 1036 to start.
If it runs well try with a lower value,if not rump up a bit between 1113/1228 for little cluster and 1112/1248 for big cluster.
Which kernel do you use daily? Personally been using Elementalx but from what I can see Blu seems to be a bit better with FairPark which I use daily
Great information! I look forward to seeing what comes of this. Now if we can just quantify load during certain things like browsing and other scenarios, that would give your values per freq more weight. Now I am unsure but I remember that Linaro used some tools** to work out Energy Aware Scheduling (EAS) for the 5x. Would be cool to gather such info and tie it in with your current findings.
** I believe they made changes in the kernel to quantify load and giving values a weight. But I would think there was more needed to create and EAS profile of the SD808 processor.
MrPhilo said:
Which kernel do you use daily? Personally been using Elementalx but from what I can see Blu seems to be a bit better with FairPark which I use daily
Click to expand...
Click to collapse
I use ElementalX kernel.
Didn`t try any of other`s.
There`s still INT3NSE kernel for OOS if you want to try.
RenderBroken said:
Great information! I look forward to seeing what comes of this. Now if we can just quantify load during certain things like browsing and other scenarios, that would give your values per freq more weight. Now I am unsure but I remember that Linaro used some tools** to work out Energy Aware Scheduling (EAS) for the 5x. Would be cool to gather such info and tie it in with your current findings.
** I believe they made changes in the kernel to quantify load and giving values a weight. But I would think there was more needed to create and EAS profile of the SD808 processor.
Click to expand...
Click to collapse
It`s hard to know the load of different scenarios because they are constanly changing.
We can estimate it but it won`t be very accurate.
For example:
Loading a web page full of pictures/videos will take a high load instead of a web page just with text.
MrPhilo said:
Which kernel do you use daily? Personally been using Elementalx but from what I can see Blu seems to be a bit better with FairPark which I use daily
Click to expand...
Click to collapse
You have to try, whatever works for you
That was just an example on how certain tweak behave in certain way, for you EX Kernel might give you better battery, you have to test
Will this work on OrionOS ? Caf Kernel no ElementX
Gesendet von meinem ONEPLUS A3003 mit Tapatalk
Yes, it will work on any rom/kernel that as interactive governor.
Awesome thread! Im gonna test GhostPepper with SultanCM13 + EX 0.32

[10][KERNEL][06.12.2019] Kirisakura-Harmony-PIE 10.1.0 [3.18.140]

Hey guys and girls,
I don´t have time to maintain 2 threads. Look in the Pixel XL forums.
Link is here: https://forum.xda-developers.com/pi...kernel-0-1-t3554330/post70974321#post70974321
So this post will be dedicated to information about EAS in general.
here is a good summary which also goes into detail regarding sched and schedutil.
Another amazing write up about alucardsched by a talented new dev @joshuous:
This is what I understand from tracing the Alucardsched code. I apologise if my understanding is incorrect.
Firstly, next frequency selection with Schedutil (very simple):
Code:
next_freq = 1.25 * Max_freq * current_util / max_util;
Now, here's a quick overview of one cycle of frequency selection in Alucardsched:
1. You have two key extra tunables: PUMP_INC_STEP and PUMP_DEC_STEP
2. Current utilisation here refers to the system's current demand. It is calculated using:
Code:
curr_util = (util * (100 + tunables->boost_perc)) / max_utilisation
The "util" is a value determined by the EAS scheduler.
3. Target load here refers to what processor is currently supplying. It is calculated using:
Code:
target_load = (current_freq * 100) / max_freq;
4. The key idea is to ensure that supply satisfies demand. That is, target load ≈ current load.
5. If target_load <= current_load (too little supply), then we want to increase frequencies to match the system’s load. For Alucardsched, frequency is increased by jumping up PUMP_INC_STEP number of steps in the OPP table. (By OPP table, I refer to the available frequencies that you can switch to)
6. If target_load > current_load (too much supply), then we want to decrease frequencies to match the system’s load. For Alucardsched, frequency is decreased by jumping down PUMP_DEC_STEP number of steps in the OPP table.
7. Do note that Alucardsched jumps several frequency steps, compared to Schedutil and Interactive which try to jump immediately to a calculated next frequency. In this way, Alucardsched doesn't care about the specific value of the next speed. It's like driving a car, and deciding to increase gears by several steps instead of deciding to jump immediately to a specific gear.
Extra Tunables
FREQ_RESPONSIVENESS
PUMP_INC_STEP_AT_MIN_FREQ
PUMP_DEC_STEP_AT_MIN_FREQ
Sometimes you want the "pumping" behaviour to behave differently at lower and higher frequencies. FREQ_RESPONSIVENESS can be seen as the mark that divides the low and high frequencies. If the current frequency is less than FREQ_RESPONSIVENESS, the number of frequency skips will be PUMP_INC_STEP_AT_MIN_FREQ and PUMP_DEC_STEP_AT_MIN_FREQ instead of the usual PUMP_INC_STEP and PUMP_DEC_STEP.
How is it used? If your frequency is low (lower than FREQ_RESPONSIVENESS) and your system demand is high, you ideally want to boost frequency speeds quickly. This is when PUMP_INC_STEP_AT_MIN_FREQ kicks in. PUMP_INC_STEP_AT_MIN_FREQ is usually (and should be) a larger value than PUMP_INC_STEP. When your frequency is high (higher than FREQ_RESPONSIVENESS) and your system demand is high, you don't want to be jumping so many steps up otherwise you will hit max frequencies too quickly (overkill). I'm pretty sure you can figure out how PUMP_DEC_STEP and PUMP_DEC_STEP_AT_MIN_FREQ works after having read this paragraph
Tldr;
Schedutil: simpler
Alucardsched: more tunable
Code:
IF CURRENT_FREQ < FREQ_RESPONSIVENESS:
PUMP_INC_STEP_AT_MIN_FREQ and PUMP_DEC_STEP_AT_MIN_FREQ are used
ELSE:
PUMP_INC_STEP and PUMP_DEC_STEP are used
PUMP_INC_STEP_AT_MIN_FREQ should be larger than PUMP_INC_STEP.
Note: There is however a potential problem (if you may call it one) with Alucardsched: just like Interactive you rely almost entirely on heuristics (trial and error) to control your frequency jumps instead of letting the system choose it for you, like in Schedutil. In that way, Alucardsched detracts from the goal of Schedutil to provide a simple frequency choosing mechanism. Without the proper tuning to meet your specific usage, it is likely that your frequencies will overshoot or undershoot past the needed load on Alucardsched (just like in Interactive). I would recommend that you play with the tunables to see what works best for you.
Here is information about energy-dcfc (Dynamic Capacity and Frequency Capping):
This new governor is based on schedutil. It uses target_load variables as thresholds to let the governor decide when to cap the frequencies for both clusters. These variables are called "load1_cap" and "load2_cap". Load1_cap corresponds to target_load1 meaning anything that is below target_load1, it caps using load1_cap. Anything above target_load1 and below target_load2, use load2_cap. Anything above target_load 2 and the maximum frequency will be used.
As a result of this behaviour, bit shift value must be set to 1. Anything higher than 1 and frequency scaling will be extremely slow. This is because the lower the maximum frequency, the lower the next frequency target is because the frequency range is being limited.
AS OF V009: The governor has now incorporated @Kyuubi10 's schedutil dynamic formula change. When load is below target_load1 it will use add bitshift in the formula. If load is above target_load1 but below target_load2, it won't use any bit shifting at all. If load is more than target_load2, it will subtract bitshift in the formula. This has proven to be very efficient with a touchboost-like behaviour when scrolling (Up to the capped frequency of this governor), then steady performance in between, and on heavy workloads it will not just stay on maximum frequency, in fact it will hover around 1.3-1.9GHz to ensure thermals are good as well as battery endurance.
This governor is aimed with maximum efficiency in mind. Do not expect outstanding performance with this governor.
helix_schedutil explained by @Kyuubi10
To understand Helix_schedutil you must first understand the original schedutil algorithm.
Here it is:
next_freq = maxfreq + (maxfreq >> bitshift) * util/maxcapacity
Explanation:
The most obvious difference of this algorithm is that it moves away from the idea of scaling frequencies up or down which were used in previous generations of governors.
Instead the aim of the above algorithm is to calculate the most appropriate frequency for the TOTAL CPU load.
NOTE: This is TOTAL load on CPU, not just load for the current frequency step as Interactive used to calculate with.
Now, for you numberphiles like myself that like understanding algorithms... Let's break it down:
"util/maxcapacity = Load."
The above creates a percentage value in decimal format (80% = 0.8) which represents the TOTAL load on CPU.
the algorithm now reads the following way:
next_freq = maxfreq + (maxfreq >> bitshift) * load
"maxfreq + (maxfreq >> bitshift)"
Essentially the aim of the above is to ensure that next_freq is always a little higher than the exact value needed to cover the load.
Bitshift: (paraphrasing @ZeroInfinity) in programming the ">>" mathematical function allows for shifting the binary values towards the direction of the arrows by "N" times.
In this case it is towards the right.
The relationship between "N" and the calculation in the "()" is as follows:
Bitshift = 1 = maxfreq/2
Bitshift = 2 = maxfreq/4
Bitshift = 3 = maxfreq/8
If the "+()" didn't exist in the algorithm, the chosen frequency would be exactly enough to cover the load.
If load is 0.6, aka 60%, all you need is a frequency = 60% of max frequency.
This would be bad since it doesn't leave any capacity/bandwidth leftover for inevitable bumps in load, nor space for EAS itself to run. Thus inevitably creating lags.
To keep a bit of free bandwidth you add "(maxfreq >> bitshift)".
Finally the problem I encountered, if bitshift = 2, then the result of the algorithm is that any load above 0.8 will result in a next_freq HIGHER than maxfreq. - This is your tipping point. As any load higher than 80% will wake up a new CPU.
Which means you have still about 20% of the CPU's max capacity being unused. Such a CPU is only 80% efficient.
Therefore by increasing bitshift to 3, the algorithm reads:
"maxfreq+(maxfreq/8)*load = next_freq"
This way you can use 89% of capacity before reaching max frequency of the CPU.
With bitshift=4 it reads:
"maxfreq+(maxfreq/16)*load = next_freq"
This allows you to use up to 94% total CPU load before reaching max frequency.
While this is great for improving efficiency at the higher frequencies, it doesn't leave enough bandwidth when calculating lower frequencies, and creates lag when load spikes at lower frequencies.
Update to the explanation:
After being inspired by the concept of @ZeroInfinity's new governor - Energy-DCFC, I decided to carry out a couple of tests on HTC 10 using variations of Helix_Schedutil.
The focus was stress-testing by increasing the current frequency load above 100%. (AKA Use up all of the bandwidth of the current frequency step.)
After the testing me and Zero worked on this new version of Helix_Schedutil.
The current behaviour of the governor is the following:
- Boost frequencies when load is below Target_Load1. (Boost can be increased by DECREASING bit_shift1 value.)
- Between Target_Loads there is no bit_shift at all. The governor just uses the following algorithm instead - (max_freq*util/max = next_freq)
- Loads higher than Target_Load2 will be THROTTLED. Bit_Shift2 here is subtracted rather than added. (Throttle effect can be increased by DECREASING bit_shift2 value.)
The result is that low freqs have spare bandwidth to avoid lags, middle frequencies leave no extra bandwidth at all, while higher frequencies are throttled to save battery.
Another focus of the governor update is to reduce overhead as much as possible. This results in a very responsive governor which isn't overly demanding on battery life.
Schedtune.boost values recommended for use with this governor:
Top_App: 5
Foreground: -50
Background: -50
Global: -50
Energy-DCFC is still recommended for those who prefer battery life over performance, but if you prefer greater performance then this governor can be used without making you feel guilty about wasting battery.
correction a misconception:
Some people describe tipping point as the load threshold which the governor uses to decide whether to ramp up or down.
While if you look into the behaviour of the governor it may appear that it behaves in such a way, it is technically incorrect.
As I mentioned previously this new algorithm moves away from the behaviour of legacy governor algorithms which focus on the current frequency load.
This governor does no ramping up or down.
It isn't even aware of the current frequency load, as it only knows the load relative to max capacity.
The misconception appears based on a property of the algorithm that results in a consistent load at any chosen frequency. This is a coincidental result of the algorithm, even though the algorithm is completely unaware of it.
Tipping point is in fact the load percentage at which the CPU reaches max frequency and any increase in load forces it to wake up a new core
here is some Information about pwrutil governor:
This new governor is based on schedutil.
A much simpler yet very effective governor based on schedutil. All this changes is the calculation to get the next frequency. Rather than using bit shift to calculate tipping point and what not, we don't use it at all. This is much much more efficient if you use my program called "schedutilCalculator" to calculate what the next frequency is. For example, a load of 25% with a max freq of 2150400 will get 500MHz as next frequency. A load of 50% will get 1GHz as next frequency. A load of 75% will get 1.5-1.6GHz as next frequency. A load of 100% will get 2.15GHz as next frequency. You can see the lower the load, the much lower the frequency selection will be, but the higher the load and the higher the frequency selection is. So it can go from a very low powered state with 50% load and under, to a high performance state from 75% load and above.
Includes a tunable called "utilboost" which is basically a load multiplier - it makes load higher than it is perceived by the governor, thus making next frequency selection higher. Remember utilisation does not equal load. The equation of calculating load is util / max capacity of a CPU (which should be 1024). So 512 / 1024 = 0.5 (50% load).
UTIL BOOST IS NOT MEANT TO BE USED WITH SCHEDTUNE.BOOST AT THE SAME TIME! EITHER USE ONE OR THE OTHER OR ELSE PERFORMANCE WILL BE OVERKILL AND BATTERY LIFE WILL DRAIN MUCH FASTER!!!
Util boost is supposed to be a replacement of schedtune.boost. schedtune.boost applies boosting to both clusters, whereas util boost allows boosting per-cluster so users can have much more control.
how to gather logs:
There are several apps that can do this process for you, Here is one: PlayStore: SysLog
And here is another: PlayStore: Andy Log (ROOT)
ramopps: is an oops/panic logger that writes its logs to RAM before the system
crashes. It works by logging oopses and panics in a circular buffer. Ramoops
needs a system with persistent RAM so that the content of that area can
survive after a restart.
logcat: the logoutput of the Android system
kernel log: (kmsg / dmesg): the kernel messages
Additionally there's the last_kmsg which is a dump of the kernel log until the last shutdown.
radio log: the log outpur ot your System / BB / RIL communication
4
ramopps:Some Documentation on Ramopps
Normal Logcat:
Radio Logcat:
Ramoops:
Via adb:
adb shell su -c cat /sys/fs/pstore/console-ramoops > kmsg.txt
Via terminal on phone:
su
cat /sys/fs/pstore/console-ramoops > /sdcard/kmsg.txt
Kernel Log:
Kernel Log:
adb shell su -c dmesg > dmesg.log
Last_Kmsg:NOTE:
New location of last_kmsg on Android 6.0 and above: /sys/fs/pstore/console-ramoops
adb shell su -c "cat /proc/last_kmsg" > last_kmsg.log
NOTES:
-v time will include timestamps in the logcats
-d will export the complete log.
If you want to save a continuous log you can remove the -d parameter - then you need to cancel the logging process via CTRL+C.
To export a continuous kernel log use adb shell su -c "cat /proc/kmsg" > dmesg.log (and cancel it via CTRL+C again).
PS: This Document was taked from another XDA Thread Called: [Reference] How to get useful logs
URL: http://forum.xda-developers.com/showthread.php?t=2185929
Also check this one out: [Tutorial] How To Logcat
I only Revived it a bit for ramopps.
I will update this more at a later time..
Attemped install on Pixel, ended up with black screen after white "unlocked booloader screen" had to reinstall system and custom rom.
Well it was confirmed working before.
Did anybody else flashed it successfully? And please follow my instructions in the op.
Freak07 said:
Well it was confirmed working before.
Did anybody else flashed it successfully? And please follow my instructions in the op.
Click to expand...
Click to collapse
It worked for me by following instructions in the OP
Followed the instructions from OP, works fine for me!
Thanks for your works, try it out now
ne0ns4l4m4nder said:
Attemped install on Pixel, ended up with black screen after white "unlocked booloader screen" had to reinstall system and custom rom.
Click to expand...
Click to collapse
Working fine here following OP, thanks for another Kernel brotha!!
so idoes this kernal work better in lineage ROMS like hexa and Resurrection Remix v5.8.1 Roms ???
abunhyan said:
so idoes this kernal work better in lineage ROMS like hexa and Resurrection Remix v5.8.1 Roms ???
Click to expand...
Click to collapse
Make sure to use supersu and not the inbuilt lineage superuser.
On rr it should run without an issue. At least it was reported in the xl thread.
Currently rooted on 7.1.1 and haven't ventured away from stock. It should be good just to follow instructions and flash?
TheBurgh said:
Currently rooted on 7.1.1 and haven't ventured away from stock. It should be good just to follow instructions and flash?
Click to expand...
Click to collapse
yes. Make a backup just in case. And use the latest supersu zip.
abunhyan said:
so idoes this kernal work better in lineage ROMS like hexa and Resurrection Remix v5.8.1 Roms ???
Click to expand...
Click to collapse
Running great on RR with latest SU ?
Running great in RR here also with 10% battery drain in 10 hour !!! thats great result
one thing tho double tap to weak function not working from lock screen at all!!!!
abunhyan said:
Running great in RR here also with 10% battery drain in 10 hour !!! thats great result
one thing tho double tap to weak function not working from lock screen at all!!!!
Click to expand...
Click to collapse
What exactly is your problem?
You can enable dt2w in exkm. But the one that is in the rom will be overwritten as the kernel one works more reliable.
Freak07 said:
What exactly is your problem?
You can enable dt2w in exkm. But the one that is in the rom will be overwritten as the kernel one works more reliable.
Click to expand...
Click to collapse
its Dt2w not functioning after installing the kernal and its was working well before that
can u explain how i can enable it?
and regard the sound control app can u advice which app i can use to enhance sound quilty by using Bluetooth headset
Thanks for ur great help:good:
abunhyan said:
its Dt2w not functioning after installing the kernal and its was working well before that
can u explain how i can enable it?
and regard the sound control app can u advice which app i can use to enhance sound quilty by using Bluetooth headset
Thanks for ur great help:good:
Click to expand...
Click to collapse
For controlling dt2w use this app.
https://play.google.com/store/apps/details?id=flar2.exkernelmanager
You can find the option in the sector gestures. Just enable it and you are set.
Audio options are under sound.
The sound for bluetooth can only be altered via software mods like viper4android.
If you really care about sound quality you should use wired headphones. But the quality for bluetooth may be enhanced by default.
hey guys and girls,
I have a new kernel now in testing. If I have no Issues I will post it in a few hours.
I added the possibility to use sdcardfs. big thanks to @DespairFactor here, he provided some help.
you just have to add ro.sys.sdcardfs=true to your build.prop
I tested it for two days now and encountered no issue. Using it may improve I/O performance.
here is some reading, in case you are interested:
https://www.xda-developers.com/divi...les-fuse-replacement-will-reduce-io-overhead/
I also added two new governors developed by @alucard_24, called alucardsched and darknesssched.
They are both based of on EAS. You may use them as an alternative to sched and schedutil.
I think alucardsched is more battery friendly. But I had quite a few stutters with it. Maybe you guys can give feedback on this.
shindiggity said:
Running great on RR with latest SU ?
Click to expand...
Click to collapse
Do you have I/0 options in your kernel manager? And are you using supersu, or the SU baked into the ROM?
Freak07 said:
For controlling dt2w use this app.
https://play.google.com/store/apps/details?id=flar2.exkernelmanager
You can find the option in the sector gestures. Just enable it and you are set.
Audio options are under sound.
The sound for bluetooth can only be altered via software mods like viper4android.
If you really care about sound quality you should use wired headphones. But the quality for bluetooth may be enhanced by default.
Click to expand...
Click to collapse
by dt2w, he means the stock android implementation where you double tap into the ambient display I think

Interactive governor highly efficient profile for SmartPack Kernel - Android N/O/P

Hello all.
After about a month of researching and testing with the Galaxy S5, I'm finally happy with my SmartKernel profile, with the interactive governor carefully tuned, using known resources and countless trials and errors, as well as other various tweaks, like VM and I/O scheduler, and decided to publish on it's own thread.
The main resources I've used for the Interactive governor tuning includes the well known:
Android Modders Guide;
[GUIDE] Advanced Interactive Governor Tweaks; Buttery smooth and insane battery life! for Nexus 5X; and it's twin
[GUIDE] Advanced Interactive Governor Tweaks; Buttery smooth and insane battery life! for HTC Evo 4G.
First of all, this tweaks should be a little sensible to the ROM, kernel, apps, and other tweaks your using. Like, I just found out that Havoc pie style quicktile settings use way more juice then if I turn it off and go back to Oreo default. Bellow you will see the apps I mainly crafted this profile in mind.
For reference: I have a klte with latest Oreo Havoc installed, nano OpenGapps, Magisk and the SmartPack kernel. For apps I use Facebook lite, cause the normal app is just a big hog, whatsapp and instagram social apps. Chrome. I don't use the Google App or Greenify(uninstall/delete velvet). And play lots of games like Clash Royale, Star Wars Force Arena and Arena of Valor. BetterBatteryStats.
And a lot of random apps that normally don't stay on the background.
DESCRIPTION
On the SmartPack manager profile:
. HIghly Efficient Interactive Governor Tunables (most important part);
. No Touchboost or any other boost, only the governor dictates to CPU in which clock it should to be;
. Overclock disabled, but can be enabled at you will;
. No underclock, I do undervolt my CPU but this you need to find your specific device numbers, mine won't cut;
. LazyPlug Hotplug with all 4 cores on all the time (better performance while using and battery savings while at idle);
. I/O Schedulers: ZEN (the L-Speed profile complement this part, with it's scheduler tunables);
. READ-AHEAD internal 1024kb (for 16GB or more) and external 512 kb (for my 8GB SDCard, adjust accordingly to yours SD Card size conform described here
. Adreno Idler disabled: it doesn't make any effect;
. Speaker Driver Leakage disabled and Boeffla Sound enabled with 0 gain as it does make a difference, at least with ViperFX magisk module installed;
. Screen minimum RGB set to 1 (0 won't stick), for a darker dark on our AMOLED, plus some tweaks;
. Led blinking fade enable;
. VM tweaks: dirty_ratio 30 and dirty_background_ratio 15; for minor battery improvement, with a perceptible lower termperature/cpu usage and almost imperceptible performance hit;
. VM tweaks: page-cluster 1; for better multitasking/memory management
. VM tweaks: oom_dump_tasks 0; disable depuration of dumping tasks, less cpu needed.
. LMK values: 32 48 64 128 176 208 (MBs)
L-Speed Profile
. Logging and I/O stats disabled;
. Animations speed set to 0.25x;
. System battery save trigger at 20%;
If you need to provide or read logs, enable logging and i/o stats back on l speed; i/o stats and oom_dump_tasks 1 on smartpack manager
INSTALLATION
Unzip the attached file and import with SmartPack Manager:
The attached profile should be imported, applied and marked as to run "On Boot" to make effect. It will only work with SmartPack Manager and Kernels for both Nougat and Oreo, maybe even Pie. Just try it, and report back. If you wanna fine tune it. You need to use an app or enable the "show cpu clocks" option if your rom supports it (like Havoc, RR and many more), and monitor at which frequencies the lags happens, while doing the jobs you want the CPU to be efficient at. And mainly tweak the target_load according, maybe above_high_speed delays of 1,7GHz clock and above. You need to read the guides more in-dept too see exactly how to do it, but I'll paste here the most important parts on how to tweak this settings more to your Galaxy S5, with your particularly apps and ROM:
soniCron said:
Optimize Idle Frequency
Now that you've got the base configuration, we need to tweak it so that the CPU stays at your efficient idle frequency (384Mhz in this case) without spontaneously jumping when your phone is actually idle. To do this, open a CPU monitor that displays the current core frequencies (I like CoolTool, but you can use what you like as long as it doesn't significantly impact the CPU use--you're best off using a passive monitor and checking the results after 30-60 seconds of no activity), watch the frequencies and see how often they go above your efficient idle frequency when you're not doing anything at all, and adjust the following:
timer_rate - If your idle frequency is not being exceeded much, adjust this downward in increments of 5000 until it is, then increase it by 5000. If your idle frequency is being exceeded often, adjust this upward in increments of 5000 until your CPU primarily stays at or below your desired idle frequency.
above_highspeed_delay - Only if your timer_rate has matched or exceeded 50000 and still won't stay at or below your desired idle frequency most of the time, set timer_rate to 50000 and adjust the "20000" portion of the value upwards in increments of 5000 until the idle frequency has stabilized.
The lower these two values are, the more snappy/lag free your system will be. So try to get them as low as possible without the idle frequency being exceeded too much, as this inversely affects the snappiness and efficiency of your phone when you're not doing anything. Lower = snappier but uses more CPU when you're not doing anything (such as reading a webpage); higher = less snappy but stays in a power saving state more often reducing CPU use when you're not interacting with the device. These are the most critical in determining your idle power savings, so keep that in mind if you want the most battery life!
Enhance Task Responsiveness
Now use the efficiency and nominal clock rate correlations you made for your master clock rate list in the section above and adjust your frequencies to suit your usage patterns. For example, I had web page scrolling as my 710Mhz/864Mhz rates, so I will open a web page and scroll and see how everything feels. If it feels sluggish, I will increase all the references to "710000" in both above_highspeed_delay and target_loads upwards to the next available clock rate until that task is smooth. What you are looking for is constant poor/sluggish performance when the task you're testing for is using its highest CPU use. If the task becomes sluggish/stuttery as it winds down (such as a scrolling webpage slowing to a stop), we will address that next, so do not take that behavior into consideration as you adjust these values! If the task is smooth until (or after) it slows down, then you have reached your optimal clock rate and can move on.
If you need to exceed your nominal clock rate for a particular task, first measure it again just to be sure you had it correct. If you did indeed have it correct, leave it at your nominal clock rate and adjust the value after the colon next to the task frequency you're tuning downward in increments of 5. For example, if my setting of "864000:80" is still not sufficient, I will adjust it first to "864000:75", then "864000:70", and so on until the task is smooth. However, it almost certainly won't come to this, but if you reach ":50" and the task still isn't performing how you want, set it back to ":80" and increase the clock step once more, then decrease the ":80" until it is smooth.
Do the same for each other frequency in your master clock rate list until you are satisfied. If you have chosen to use more than 2 primary clock rates, add them and use ":##" values between the two surrounding frequency values.
Fix Stuttering
Now that you have adjusted your frequencies for optimal high CPU use in each given task, you may notice some stuttering as the task winds down. (Such as a scrolling webpage slowing to a stop.) If this bothers you, you can tweak this at the expense of some (minor) battery life by adjusting min_sample_time up in increments of 5000 until you are satisfied.
If you have exceeded a value of 100000 for the min_sample_time setting and still are not satisfied, change it back to 40000 and increase (and re-optimize) your idle frequency by one step. This will impact battery life more, but less than if you were to keep increasing the value of min_sample_time.
Adjust High Load Clock Rates
You're almost done! Now you can leave everything as is and be satisfied with your amazing, buttery smooth, snappy experience, or you can optionally tweak things further to either increase the responsiveness of high load tasks (such as loading image previews in Gallery) or increase battery life somewhat.
Adjust the final delay value in above_highspeed_delay to suit your needs. The default ("150000") means that the CPU load at the highest set frequency (default "1026000") will have to be sustained for 150ms before it allows the load to go above that frequency. Increasing this value will prevent the CPU from reaching higher frequencies (which may be unnecessary) as often, saving battery life. This will come at the expense of burst-type high CPU load tasks. Reducing it will allow the CPU to reach higher frequencies more often, at the expense of battery life. However, adjusting this is probably unnecessary, as it will most likely not yield any perceptible difference in performance. It is recommended to leave this value at its default.
Click to expand...
Click to collapse
Besides CPU Voltage and Battery, all tabs on the manager are modified and tuned to achieve best performance, while having best efficiency possible. Is not a battery or a performance, but a efficiency profile.
Refer to this thread if you wanna undervolt your device with a well know secure margin for the CPU Snapdragon 801 2.5ghz MSM8974AC, which our Galaxy S5 contains:
[GUIDE] Snapdragon 805/801/800/600 Clock & Voltage (PVS bin) guide by HD2Owner I've managed to achieve much lower voltages then PSV15+ devices (refer to the sheets).
I also attached the excel spreadsheet I've made with all this thread information, both governor guide equations on target loads, undervolting guide findings, and made my own base calculations and settings. Feel free to use, modify, and discuss it with me. You will see that I based the most efficient clocks in an original thought about which ones are the most efficient, instead of plotting the differentials between voltages of each clocks, I did plotted the difference of the clock divided by voltage, which on itself should be how much voltage 1 mhz uses, on each clock rate. So, the higher the number, more speed each clock rate give us by voltage used. It's kinda complicated and idk if I explained it the right way, and even if it really makes sense under scrutiny, but I couldn't think why not myself, so, any inputs are welcome.
I own my thanks to all the following XDA fellows, without them, I could not have achieved this:
@sunilpaulmathew for the SmartPack Kernel which is the only kernel for the S5 that can turn that damned MPDecision off and SmartPack Manager;
@soniCron for both of the governos Guides;
@Saber for the Android Modders Guide which is immensely helpful.
CHANGELOGS
L-Speed Profile (download the app on PlayStore):
011118 lspeed profile
- first release
031118 lspeed profile
- Removed most tweaks, only left minor stuff, refer to the OP.
L Speed profile is not really needed, SmartPack will do 99% of the job.
SmartPack Manger Profile (download the kernel and the app here):
301018
- first release.
011118 smartpack profile:
- A few Interactive governor tweaks;
- Removed Virtual Memory and LMK tweaks, let it on default or use L-Speed to optimize, as it does a much better job then me.
031118 smartpack profile:
- Governor tunning: better high load management;
- Included back only 3 sane VM configurations, no more freezing, better cooling (less cpu needed, while performance barely took a hit)
- Sane LMK configurations, kills apps not being used faster, retain some multitasking while not let it slow down the device
081118 smartpack profile:
- target_load (no changes up to 1497600) ...1728000:89 1958400:91 2265600:95 -> ...1728000:88 1958400:90 2265600:95
- above_hispeed 20000 1190400:60000 1497600:64000 1728000:77000 1958400:84000 2265600:130000 -> 20000 1190400:60000 1728000:68000 1958400:79000 2265600:110000
- external storage read-ahead from 512 -> 2048 (because I've gone from a 8GB to a 32 GB SDCard, ADJUST YOURS ACCORDINGLY TO https://androidmodguide.blogspot.com/p/io-schedulers.html)
- cleaned unused and already default values from profile
101118 smartpack profile:
- Turned Alucard off, accidentally activated it with Lazyplug also enabled, not good!
- Managed to go 1 point higher on freq 1497 MHz, the 2 hotplugs enabled were messing with me trying to test this change before, also 1 point lower on the idle freq 268 MHz for smoother scrolling while still staying at freq 268 while idle. And some more high load optimizations now that I only got 1 hotplug enabled as it should always be.
- target_loads from 268800:29 ... 1497600:86 1574400:5 1728000:88 1958400:90 2265600:95 to -> 268800:28 ... 1497600:87 1574400:5 1728000:89 1958400:91 2265600:94
- above_hispeed 20000 1190400:60000 1728000:68000 1958400:79000 2265600:110000 -> 20000 1190400:60000 1728000:74000 1958400:82000 2265600:120000
- dirty_background_ratio 15 -> 10
221118 smartpack profile:
. Reverted new SmartPack Kernel v14r4 changes to Virtual Memory back to original default configurations, if you've have had reboots this should fix it, please report back here and/or the kernel's thread;
. More changes to Interactive governor aiming to optimize high load scenarios according to the profile philosophy:
. above_hispeed_delay 20000 1190400:60000 1728000:74000 1958400:82000 2265600:120000 -> 20000 1190400:60000 1728000:74000 1958400:80000 2265600:105000;
. Enabled fast charge configurations, set at 1200 mhA as I found it's a good charging speed without heating the phone too much on my hot city, nothing you can't change at your will.
241218 smartpack profile:
. Restored missing min_sample_time tunable since 081018 profile
. dirty_ratio 30 -> 25
. General cleanup
. Tested on Pie
@justjr
Nice work friend. Great to see that your finally open a place to share your findings. In my opinion, your profile should work on any klte device with minimum kernel support. I haven't seen much SmartPack specific stuff in your profile except some hotplug related things. So, if you make it as a shell script instead of KA/SP-Kernel Manager profile, it shall be beneficial for everyone. Anyway, as usual, I'll kang your changes to my kernel default profile
sunilpaulmathew said:
@justjr
Nice work friend. Great to see that your finally open a place to share your findings. In my opinion, your profile should work on any klte device with minimum kernel support. I haven't seen much SmartPack specific stuff in your profile except some hotplug related things. So, if you make it as a shell script instead of KA/SP-Kernel Manager profile, it shall be beneficial for everyone. Anyway, as usual, I'll kang your changes to my kernel default profile
Click to expand...
Click to collapse
I think this profile should work on original Kernel Adiutor, or any fork of it, shouldn't it?
It should work on any other kernel if the changes really stick, and uses the same paths, but MPDecision will mess with frequencies all the time. It would still follow the governor tunables anyway, but it will interfere with it and in the end will not gain too much efficiency out of it.
Actually I only state it is for SmartPack specifically because of the fact that is the only one I can disable MPDecision on our device, and because I included all the tweaks other then just governor tweaks.
Actually I'm kinda lazy right now, but I could do a shell script if any demand for it shows up.
justjr said:
I think this profile should work on original Kernel Adiutor, or any fork of it, shouldn't it?
It should work on any other kernel if the changes really stick, and uses the same paths, but MPDecision will mess with frequencies all the time. It would still follow the governor tunables anyway, but it will interfere with it and in the end will not gain too much efficiency out of it.
Actually I only state it is for SmartPack specifically because of the fact that is the only one I can disable MPDecision on our device, and because I included all the tweaks other then just governor tweaks.
Actually I'm kinda lazy right now, but I could do a shell script if any demand for it shows up.
Click to expand...
Click to collapse
Well, official KA (free version) doesn't allow to import profiles (paid feature), but all other mods does.
and yes, it is supposed to work on every klte device as long as the sysfs paths exist. Means it should work on any custom Kernel with lazyplug support (most of the other stuff are actually included in the stock kernel itself). Of course, the default settings provided by the kernel devs might conflict. e.g., as you said, MPDecision, although the line "stop mpdecison" in your profile will disable it. By the way, I'm not the only one who disabled mpdecision and relay on other hotplugs in this klte community
sunilpaulmathew said:
Well, official KA (free version) doesn't allow to import profiles (paid feature), but all other mods does.
and yes, it is supposed to work on every klte device as long as the sysfs paths exist. Means it should work on any custom Kernel with lazyplug support (most of the other stuff are actually included in the stock kernel itself). Of course, the default settings provided by the kernel devs might conflict. e.g., as you said, MPDecision, although the line "stop mpdecison" in your profile will disable it. By the way, I'm not the only one who disabled mpdecision and relay on other hotplugs in this klte community
Click to expand...
Click to collapse
Oh, really? Which one? I must had missed it. I've tested all kernels I could find. At least all the remotely up-to-date, like venom, tuned and boeffla kernels. I didn't see any option to change hotplugs on any. There were hotplug profiles, to keep cores online and stuff, but everyone of them keep changing min and max frequency at MPDecision will.
justjr said:
Oh, really? Which one? I must had missed it. I've tested all kernels I could find. At least all the remotely up-to-date, like venom, tuned and boeffla kernels. I didn't see any option to change hotplugs on any. There were hotplug profiles, to keep cores online and stuff, but everyone of them keep changing min and max frequency at MPDecision will.
Click to expand...
Click to collapse
Boeffla and Venom largely depends on MPDecision. However, as I remember correctly (on the basis of the code review, not from my experience, I never used it by myself), the Tuned kernel by @fbs disabled MPDecision upon booting to work well with its own Tuned hotplug.
sunilpaulmathew said:
Boeffla and Venom largely depends on MPDecision. However, as I remember correctly (on the basis of the code review, not from my experience, I never used it by myself), the Tuned kernel by @fbs disabled MPDecision upon booting to work well with its own Tuned hotplug.
Click to expand...
Click to collapse
I tested it too. And although he claims he uses hes own hotplug, it behave the same as boeffla and venom, it has the same profiles, and it does changes min and max freq out of my control.
justjr said:
I tested it too. And although he claims he uses hes own hotplug, it behave the same as boeffla and venom, it has the same profiles, and it does changes min and max freq out of my control.
Click to expand...
Click to collapse
no it doesn't change any freqs
it works by disabling or enabling cores, just that.
if any cpu reaches the maximum frequency, it enables one more core (as the other ones are already giving their best)
if any cpu reaches the minimum frequency too many times, it disables it (as it doesn't seem to be needed)
so in any moment you can have all 4 cores enabled or only 1. even with display on or off, it doesn't matter
mpdecision will NEVER let you use just 1 core, and it doesn't react as fast: battery hog
fbs said:
no it doesn't change any freqs
it works by disabling or enabling cores, just that.
if any cpu reaches the maximum frequency, it enables one more core (as the other ones are already giving their best)
if any cpu reaches the minimum frequency too many times, it disables it (as it doesn't seem to be needed)
so in any moment you can have all 4 cores enabled or only 1. even with display on or off, it doesn't matter
mpdecision will NEVER let you use just 1 core, and it doesn't react as fast: battery hog
Click to expand...
Click to collapse
Alright, sorry then, it seems my memories got clouded or something, as I've tested it about a month ago. I might go back any day just to test that. Thanks for giving us one more kernel option! :good:
UPDATE OP WITH
Description
Changelogs
New profile 011118, changelog:
. Few governor tweaks
. Removed Virtual Memory and LMK tweaks, let it on default or use L-Speed to optimize, it does a much better job then me
Also uploading the L-Speed profile I use so those who want to use it like I do, but you can choose any VM and LMK profile that fits your needs on the app. Just don't use the governor tuner because it will mess with my tunings, and l-speed governor tuning is a generic one for all devices, VM and LMK is OK to use generic tweaks, but not on governor.
@sunilpaulmathew I took a look at l-speed virtual memory and lmk profiles and they make incredible sense, take a look yourself, they may be what you need to put o that spectrum profiles, because above all they are device independent and do make a noticeable difference.
Is it valide for stock rom (6.0)?
lollazzo said:
Is it valide for stock rom (6.0)?
Click to expand...
Click to collapse
What kernel? It should work if the kernel have lazyplug or alucard hotplug, if is the late you just have to enable it.
Updates
SmartPack Manager Profile 031118:
. Governor tunning: better high load management;
. Included back only 3 sane VM configurations, no more freezing, better cooling (less cpu needed, while performance barely took a hit)
. Sane LMK configurations, kills apps not being used faster, retain some multitasking while not let it slow down the device
LSpeed Profile 031118:
. Removed most tweaks, only left minor stuff, refer to the OP.
L Speed profile is not really needed, SmartPack will do 99% of the job.
OP: descriptions for both profiles updated.
New profile.
I returned to Nougat, RR 5.8.5, same configs works awesomely and the device is cooler/faster then with Oreo. But still will works the same with both N/O and even Pie, not tested.
I also reinstalled Hearthstone as a high load app so I could tune the governor better for it, and up to 1490 MHz nothing is changed, and changed a bit target_loads and above_hispeed of the clocks above it so Hearthstone (and any other high load apps, or, using split screen with youtube) runs smoother/without lags and tasks like opening an app will finish faster, and also go back to a lower clock faster because of that. So, in the end it stays most of the time at lower clocks anyway, only difference is that it will jump faster when needed for less waiting time/lag.
Just to clarify, this is not suppose to waste battery, or drain it faster. As an efficiency profile the goal is to do the job you the want faster the possible, ramping up to the clocks that the jobs demands, without lags (or minimal lags) and go back to idle/lower clocks as soon as high clocks aren't needed anymore, so it don't overstay at a higher clocks then it's needed, very simple.
So, going to a high clock doesn't mean less battery life, finishing a job fast and going back to idle is the key to achieve more battery life, specially during deep sleep, when you really want your device go back to deep sleep fast, but also at any other time. Watching youtube, browsing and using low demand apps still uses the same clocks.
Also, on top of that you will spend more time USING the device instead of WAITING for it to finish a job. Battery life is very subjective, and SoT doesn't mean nothing IRL, I mean, are you spend that SoT waiting for a job to finish or to actually use the device?
081118 smartpack profile:
- target_load (no changes up to 1497600) ...1728000:89 1958400:91 2265600:95 -> ...1728000:88 1958400:90 2265600:95
- above_hispeed 20000 1190400:60000 1497600:64000 1728000:77000 1958400:84000 2265600:130000 -> 20000 1190400:60000 1728000:68000 1958400:79000 2265600:110000
- external storage read-ahead from 512 -> 2048 (because I've gone from a 8GB to a 32 GB SDCard, ADJUST YOURS ACCORDINGLY TO https://androidmodguide.blogspot.com/p/io-schedulers.html)
- cleaned unused and already default values from profile
File attached on OP.
I don't use SD card so what do I do?
razor17 said:
I don't use SD card so what do I do?
Click to expand...
Click to collapse
In that case nothing is needed, the configurations related to the absent sd card will not be applied.
Ok guys. I was wondering why my device was heating a lot more these last 2 days. Turns out both Alucard and Lazyplug were accidentally activated on 081119 profile. Turn one of them off and everything will be a lot better. Sorry for that. I will upload a new profile very soon.
edit:
101118 smartpack profile:
- Turned Alucard off, accidentally activated it with Lazyplug also enabled, not good!
- Managed to go 1 point higher on freq 1497 MHz, the 2 hotplugs enabled were messing with me trying to test this change before, also 1 point lower on the idle freq 268 MHz for smoother scrolling while still staying at freq 268 while idle. And some more high load optimizations now that I only got 1 hotplug enabled as it should always be.
- target_loads from 268800:29 ... 1497600:86 1574400:5 1728000:88 1958400:90 2265600:95 to -> 268800:28 ... 1497600:87 1574400:5 1728000:89 1958400:91 2265600:94
- above_hispeed 20000 1190400:60000 1728000:68000 1958400:79000 2265600:110000 -> 20000 1190400:60000 1728000:74000 1958400:82000 2265600:120000
- dirty_background_ratio 15 -> 10
I will give this a try. Hope it works well...
Yeah.
You know, try it and report back. I don't see any reports, so I assume is working well for people.
Any reports are welcome.
lentm said:
I will give this a try. Hope it works well...
Click to expand...
Click to collapse
Enviado de meu SM-G900M usando o Tapatalk
justjr said:
Yeah.
You know, try it and report back. I don't see any reports, so I assume is working well for people.
Any reports are welcome.
Enviado de meu SM-G900M usando o Tapatalk
Click to expand...
Click to collapse
No problems so far...greats for daily use..scrolling smoother than default..but pubg still laggy on lower res...may i know which rom are u using?

Categories

Resources