Related
Hi guys,
I've been looking fruitlessly for an FAQ where the following stuff is described:
- discussion of the different governors (smartass/smoothass/performance/...)
- discussion of the methods for overclocking (is NoFrills the only/preferred way to set overclocking, or are there better tools?)
thanks for pointing me in the right direction...
dryhte said:
Hi guys,
I've been looking fruitlessly for an FAQ where the following stuff is described:
- discussion of the different governors (smartass/smoothass/performance/...)
- discussion of the methods for overclocking (is NoFrills the only/preferred way to set overclocking, or are there better tools?)
thanks for pointing me in the right direction...
Click to expand...
Click to collapse
Hi Drythe,
I don't know if there's a FAQ around here for that. As far as OC apps are concerned I've only used SetCPU which is free for download at its XDA thread. I guess NoFrills does the same as SetCPU but I've never tried it out as I never needed to. If you're using CM7 and you have CM's submenu under settings you can even set there the min/max CPU frequencies, the governor and the set-on-boot option. That's the standard options. SetCPU also gives you the possibility of defining min/max/governor profiles for a number of different scenarios (battery percentage or temperature;screen on/off, etc.) As for a way of setting the OC, any one of them is enough and none will give you better OC per se, of course
Choose the one you like the most and use it, it won't make a difference on the OC.
About the governors, some of them are self-explanatory (conservative, powersave, performance,...), some of them may not be. You'd be better off googling for the specific governor you want to know about and reading some results about it.
If you have the time and compile that information into a new thread, the better.
Happy OCing!
Cheers!
And when you do, please post in relevant section (not dev )
_Arjen_ said:
And when you do, please post in relevant section (not dev )
Click to expand...
Click to collapse
Yes yes yes...
By the way, Smoothass appears to be a very elusive target. I'm using it but couldn't find any info
Smoothass is an improved smartass. The way it scales between the frequencies was changed but mantains the smartass original concept. From what I reckon, smoothass is the advisable one to use.
Cheers.
is smoothass an improved smartass like said above?
LuPuS Kernel
{
"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"
}
Hello there, I was reading about Governors on a thread
and was curious about these governors that I hadn't seen before and wanted to try them.
So then I came across this great thread by paxChristos and decided I would try compile a kernel with new Governors and io-scheduler.
I've taken out a couple of things while compiling the kernel as well. I have been using it for a good few days now
and thought I should share these Governors to other Xplay users.
I googled for a name and came across LuPuS :highfive: that is why the boot logo is what it is
Well hope you all enjoy and I will be adding more governors soon when I get time
Thanks to all those who have helped me making this, paxChristos for his advice & tutorial.
Lightnindude, FXP and Cyanogenmod for their sources :good:
Disclaimer
Code:
[COLOR="DarkOrchid"]#include[/COLOR] [COLOR="Magenta"]<std_disclaimer.h>[/COLOR]
[COLOR="Blue"]/*
* Your warranty is now void.. LOL I guess you knew it already.
*
* I am not responsible for bricked devices, dead SD cards,
* thermonuclear war, you getting dumped or you getting fired because your phone
* bootloops and alarm does not go off. Please do some research if you have any
* concerns about features included in my kernel before using it! YOU and only
* YOU are choosing to make these modifications.
*/
[COLOR="Magenta"]#ifdef[/COLOR]
You have a [COLOR="DarkGreen"]question[/COLOR] post it in the [COLOR="DarkRed"]thread[/COLOR],
Instead of [COLOR="DarkGreen"]Pm'ing me[/COLOR], as other users may
experience you [COLOR="DarkRed"]problems[/COLOR]
[COLOR="Magenta"]#endif[/COLOR][/COLOR]
What Works --
Wifi - (flash modules)
Data
Camera
Panorama
Video Recording (720p now works)
Video Playback
Front Camera
Bluetooth
Everything Else that works on FXP & Mjolnir
What doesn't work --
ALS (Disabled)
Anything that doesn't work on FXP & Mjolnir
Included in kernel
[/LIST]
Added Io-schedulers --
- Noop
- Anticipatory
- Deadline
- CFQ
- BFQ
- SIO
Added Governors --
- lagfree
- brazillianwax
- smoothass
- scary
- savagedzen
- smartass
- smartassv2
- interactivex
- minmax
- powersave
- performance
- conservative
- ondemand
- interactive
- userspace
+
Lulzactive - Thanks to Tegrak
Based on Interactive and Smartass. When workload is greater than or equal to 60%, the governor scales up
CPU to next higher step. When workload is less than 60%, governor scales down CPU to next lower step.
When screen is off, frequency is locked to global scaling minimum frequency
Virtuous
Virtuous is a modded smartassV2 which gives even more battery time then smartassV2
Intellidemand - Thanks to faux123
This is an intelligent ondemand that enters browsing mode to limit max frequency when GPU is idling,
and (exits browsing mode) behaves like ondemand when GPU is busy; to deliver performance for gaming and such.
Intellidemand does not jump to highest frequency when screen is off.
Lazy - Thanks to Ezekeel
The Idea here is to eliminate any instabilities caused by fast frequency switching by ondemand.
Lazy governor polls more often than ondemand, but changes frequency only after completing min_time_state
on a step overriding sampling interval.
Lazy also has a screenoff_maxfreq parameter which when enabled will cause the governor to always
select the maximum frequency while the screen is off.
-Ondemandx:
Basically an ondemand with suspend/wake profiles. This governor is supposed to be a battery friendly ondemand. When screen is off, max frequency is capped at 500 mhz. Even though ondemand is the default governor in many kernel and is considered safe/stable, the support for ondemand/ondemandX depends on CPU capability to do fast frequency switching which are very low latency frequency transitions. I have read somewhere that the performance of ondemand/ondemandx were significantly varying for different i/o schedulers. This is not true for most of the other governors. I personally feel ondemand/ondemandx goes best with SIO I/O scheduler.
-Lionheart:
Is a conservative-based governor. The tunables (such as the thresholds and sampling rate) were changed so the governor behaves more like the performance one, at the cost of battery as the scaling is very aggressive.
To 'experience' Lionheart using conservative, try these tweaks:
sampling_rate:10000 or 20000 or 50000, whichever you feel is safer. (transition latency of the CPU is something below 10ms/10,000uS hence using 10,000 might not be safe).
up_threshold:60
down_threshold:30
freq_step:5
Lionheart goes well with deadline i/o scheduler. When it comes to smoothness (not considering battery drain), a tuned conservative delivers more as compared to a tuned ondemand.
BadAss Governor:
Badass removes all of this "fast peaking" to the max frequency. Badass will also take the gpu load into consideration. If the gpu is moderately busy it will bypass the above check and clock the cpu with 1024Mhz. If the gpu is crushed under load, badass will lift the restrictions to the cpu.
Superbad -
A "superbad" super smooth rendition of a highly optimized "smartass" governor!
Darkside -
A "slightly more agressive smart" optimized governor!
What else-----
-SLQB - (SLAB allocator with Queue)-(both)
This memory allocator is designed for small number of CPUs system (such as desktop or smart phone devices). This allocator is design to be simple and it is optimized for using order-0 pages as much as possible (order-0 pages are the simplest therefore quickest type of memory in a Linux system to allocate).
- Added Cleancache
- Supports ext 2,3
- Updated zRam
- Lzo compression/decompression speed has doubled on average.
- Init.d support
- Fudgeswap
- And much more
- O/C and stable upto 2ghz, although I do not recommend O/C to 2ghz for long periods of time, do so at your own risk.
Show your support for the kernel and my work by putting this in your signature, its only a quick one I done up with my limited time
Code:
http://i.imgur.com/xtWNL.png
Downloads in post 2
Instructions for the CWM Recovery And Aroma File Manager--
--When phone vibrates tap the back key to enter CWM Recovery v6.
--When phone vibrates tap the volume down key to enter Aroma File Manager
I would like to say a big thanks to -
paxChristos - Tutorial / Help
xeozus
NobodyAtAll
Faux123
Erasmus
Leedroid
Jerpelea
KeiranFTW - for his PNG to RLE conversion script
Lightningdude - Sources / Help
FXP - Sources
Cyanogenmod - Souces
DooMLoRD - Everything he's done for XPLay
Supervenom - For the amazing AOKP rom
Solomon4400 - For helping me test (there where a few dodgy ones before I got it to work random reboots and stuff )
CosmicDan - For the amazing CWM / Aroma File Manager - AND LuPuS MIUI[CM9 BASED]
tempest918 - For the New Logo
amarullz - For Aroma File Manager
Kernel sources -b ics
https://github.com/garwedgess/LuPuS-CM-iCs
Changelog
*** Previous changelog was messed up so I'll include everything in here ***
Code:
[B][U]v9[/U][/B]
- Improved Battery Life alot :)
- Thumbee support
- EXT 2/3 & 4 supported
- Init.d supported
- Init.d scripts added (run at boot)
- SLQB Memory allocator
- ARM7 optimizations
- Brought OC back down to 1.6 max (no need for it above 1.6 unless u want to kill your device)
- Kernel sources completely reworked started from scratch o Sony xx.587 sources
- Tiny RCU
- Updatedd patched and fixed LZO
- lowered vfs cache pressure
- Increased Wifi- Range and added support for channel 14
- 0 % Battery patch - Thanks @ Bazoocaze
- Better memory copy
- Better memory move
- Deep sleep issue fixed
- LMK Optimizations (LowMemoryKiller)
- VDD support (voltage conrol)
- Linaro Optimzations
- Compaction added
- KSM
- CIFS (improved support)
- NTFS
- Updated to newest SIO Io-Scheduler
- Google Snappy Compress & Decompress
- Added Vibrate To Recovery (Notification to enter CWM)
- Wifi module size drasticly reduced
** Possibly missing a few things **
Downloads
If you like my work please consider buying me a beer or something else
by clicking the DONATE ME button, of course it isn't needed but greatly appreciated and keeps me motivated.
So zRam does not work on them, below i've added a zram enabler .zip to flash via CWM[/B]
- If for whatever reason you want to disable Zram after you have flashed the .zip, just go to ect/init.d and delete 00zram
Wifi-modules included - Thanks @ CosmicDan
-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
v9-LiNaRo-480p Recording
LuPuS-v9-480.img
MD5 = 3b33c08252a845e7cd8374d112f05e9f
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
v9 LiNaRo-720p Recording
LuPuS-v9-720.img
MD5 = 225f5abdfc30643e9763ff3ad95c17af
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
People will ask so i'll just post it here---------to check if zRam is enabled go to terminal emulator or similar and type
Code:
free
or alternatively
Code:
cat /proc/swaps
Please Click Thanks :good:
Great, I'll try it! :good:
Alejandroch said:
Great, I'll try it! :good:
Click to expand...
Click to collapse
Cool make sure you download and flash the the wifi modules in CWM!!
Yo I highly rate this kernel and the dev he is really great! Gratz wedgess do your thing.
Sent from my R800i using xda app-developers app
Cool thanks for the great work, the Intellidemand governor sounds very interesting.....!
Thanks for sharing your source, I like to strip system down to 240MB to give data some more space.
EDIT: I have shared with you my RAMDisk image for your consideration wedgess, maybe you will like it. It is taken from latest CM9 Ramdisk with the following changes:
- Replaced FreeXperia Recovery with DoomLords' Recovery
- Changed Recovery key to Back (instead of Volume-Down) and added a short vibration (just like DoomKernel)
- Bootlogo unchanged, still original FXP one
- Maybe some other small things, can't remember. Tree-compare it to FXP Ramdisk if you like to make sure.
I would release my own kernel with these changes but we already have two CM9-based kernels now, I don't really want to!
CosmicDan said:
Cool thanks for the great work, the Intellidemand governor sounds very interesting.....!
Thanks for sharing your source, I like to strip system down to 240MB to give data some more space.
EDIT: I have shared with you my RAMDisk image for your consideration wedgess, maybe you will like it. It is taken from latest CM9 Ramdisk with the following changes:
- Replaced FreeXperia Recovery with DoomLords' Recovery
- Changed Recovery key to Back (instead of Volume-Down) and added a short vibration (just like DoomKernel)
- Bootlogo unchanged, still original FXP one
- Maybe some other small things, can't remember. Tree-compare it to FXP Ramdisk if you like to make sure.
I would release my own kernel with these changes but we already have two CM9-based kernels now, I don't really want to!
Click to expand...
Click to collapse
Thanks intellidemand is great, its the governor I'm using at the moment. Recovery should already be the BACK button as I edited the ramdisk with my own boot logo and sbin. I used dooms touch recovery before but just wanted something simple if people want I could change eventually
Sent from my Xperia Play using xda premium
wedgess said:
Thanks intellidemand is great, its the governor I'm using at the moment. Recovery should already be the BACK button as I edited the ramdisk with my own boot logo and sbin. I used dooms touch recovery before but just wanted something simple if people want I could change eventually
Sent from my Xperia Play using xda premium
Click to expand...
Click to collapse
Did you add vibrate too? I always miss the trigger on FXP kernel lol. I don't like the full Touch Recovery either because you can't see long filenames properly, but the one from his ICS Beta kernel is just like CWM Recovery.. but it does have the touch-enabled buttons down the bottom, or is that the same one you mean...? I understand it can be annoying bumping the screen on that and making a mistake selection, but DoomLord Recovery has some useful features... power-off is a good example, I hate having to pull the battery out to power off (seems dangerous).
Well yeah let the crowd decide, nothing is stopping me from repacking it myself for my use of course Cheers.
CosmicDan said:
Did you add vibrate too? I always miss the trigger on FXP kernel lol. I don't like the full Touch Recovery either because you can't see long filenames properly, but the one from his ICS Beta kernel is just like CWM Recovery.. but it does have the touch-enabled buttons down the bottom, or is that the same one you mean...? I understand it can be annoying bumping the screen on that and making a mistake selection, but DoomLord Recovery has some useful features... power-off is a good example, I hate having to pull the battery out to power off (seems dangerous).
Well yeah let the crowd decide, nothing is stopping me from repacking it myself for my use of course Cheers.
Click to expand...
Click to collapse
Haha ye that's the one I mean just personally prefer the original CWM, I agree with the power off but I just reboot system now and don't battery pull I'm open to suggestions though maybe I could make a version for people who prefer it that way??
Sent from my Xperia Play using xda premium
wedgess said:
Haha ye that's the one I mean just personally prefer the original CWM, I agree with the power off but I just reboot system now and don't battery pull I'm open to suggestions though maybe I could make a version for people who prefer it that way??
Sent from my Xperia Play using xda premium
Click to expand...
Click to collapse
Here's an idea. Keep Vol-Down as FreeXperia Recovery (as it is originally), Back key as DoomLord Recovery, and Menu key as Aroma FileManager? That would be KICKASS. Looking at bootrec and bootrec-device scripts in sbin, seems easy enough to do! If you like that and would like a hand, send me a PM! Or we can keep bumping the thread discussing it :laugh: (Why not, valid dev. discussion that everyone can learn from)
CosmicDan said:
Here's an idea. Keep Vol-Down as FreeXperia Recovery (as it is originally), Back key as DoomLord Recovery, and Menu key as Aroma FileManager? That would be KICKASS. Looking at bootrec and bootrec-device scripts in sbin, seems easy enough to do! If you like that and would like a hand, send me a PM! Or we can keep bumping the thread discussing it :laugh: (Why not, valid dev. discussion that everyone can learn from)
Click to expand...
Click to collapse
this would be great, two days ago i was just looking on how to insert the doomlord recovery in the FXP kernel XD
Good work
Good work man.
:good:
I was reading your post and I thing governor: Lulzactive is not very effective.
I'm not phone deveolper, I'm only normal programmer.
So if I am wrong please explain.
I think it will make cpu freq very jumping, in every interval.
x=>60 - higher state
x<60 - lower state
so in average load it will do something like: ^v^v^v^v (higher->lower->higher->lower...)
what about:
x>60 - higher state
x<60&&x>40 - stay
x<40 - lower state
Gh61 said:
Good work man.
:good:
I was reading your post and I thing governor: Lulzactive is not very effective.
I'm not phone deveolper, I'm only normal programmer.
So if I am wrong please explain.
I think it will make cpu freq very jumping, in every interval.
x=>60 - higher state
x<60 - lower state
so in average load it will do something like: ^v^v^v^v (higher->lower->higher->lower...)
what about:
x>60 - higher state
x<60&&x>40 - stay
x<40 - lower state
Click to expand...
Click to collapse
Old Version: When workload is greater than or equal to 60%, the governor scales up CPU to next higher step. When workload is less than 60%, governor scales down CPU to next lower step. When screen is off, frequency is locked to global scaling minimum frequency. THIS IS THE VERSION IT IS NOW
New Version: Three more user configurable parameters: inc_cpu_load, pump_up_step, pump_down_step. Unlike older version, this one gives more control for the user. We can set the threshold at which governor decides to scale up/down. We can also set number of frequency steps to be skipped while polling up and down.
When workload greater than or equal to inc_cpu_load, governor scales CPU pump_up_step steps up. When workload is less than inc_cpu_load, governor scales CPU down pump_down_step steps down.
Example:
Consider
inc_cpu_load=70
pump_up_step=2
pump_down_step=1
If current frequency=200, Every up_sampling_time Us if cpu load >= 70%, cpu is scaled up 2 steps - to 800.
If current frequency =1200, Every down_sampling_time Us if cpu load < 70%, cpu is scaled down 1 step - to 1000.
I WILL CHANGE TO THIS ONE IN A COUPLE OF DAYS
I will leave the old version in there and put the newer one as v2
Click thanks if you like this
wedgess said:
Old Version: When workload is greater than or equal to 60%, the governor scales up CPU to next higher step. When workload is less than 60%, governor scales down CPU to next lower step. When screen is off, frequency is locked to global scaling minimum frequency. THIS IS THE VERSION IT IS NOW
New Version: Three more user configurable parameters: inc_cpu_load, pump_up_step, pump_down_step. Unlike older version, this one gives more control for the user. We can set the threshold at which governor decides to scale up/down. We can also set number of frequency steps to be skipped while polling up and down.
When workload greater than or equal to inc_cpu_load, governor scales CPU pump_up_step steps up. When workload is less than inc_cpu_load, governor scales CPU down pump_down_step steps down.
Example:
Consider
inc_cpu_load=70
pump_up_step=2
pump_down_step=1
If current frequency=200, Every up_sampling_time Us if cpu load >= 70%, cpu is scaled up 2 steps - to 800.
If current frequency =1200, Every down_sampling_time Us if cpu load < 70%, cpu is scaled down 1 step - to 1000.
I WILL CHANGE TO THIS ONE IN A COUPLE OF DAYS
I will leave the old version in there and put the newer one as v2
Click thanks if you like this
Click to expand...
Click to collapse
Sounds good, yeah the whole stay-at-current-if-between-60-and-40-percent is not really the nature of lulzactive, it's designed to have very responsive ramping. If you want a "stable" governor give the ondemand a go (or one of the ones it's based on, such as interactive or interactivex). Lulzactive is like a mix between interactive and smartass. Reference: http://forum.xda-developers.com/showthread.php?t=1369817
At the moment I'm having problems with lulzactive2 but if I can't fix it I still have other ones which I've added and am currently testing some of them. More to come....
Sent from my Xperia Play using xda premium
wedgess said:
At the moment I'm having problems with lulzactive2 but if I can't fix it I still have other ones which I've added and am currently testing some of them. More to come....
Sent from my Xperia Play using xda premium
Click to expand...
Click to collapse
...such as bfq scheduler and all three FXP-Recovery/DoomLord-Recovery/AromaFM ;D
EDIT: It should be noted that this kernel is based on the official CyanogenMod 9 RC2 release for the Xperia Play, not FXP-CM9. I don't know how different it will behave but there are a lot of sourcecode changes compared to the FXP-CM9.
CosmicDan said:
...such as bfq scheduler and all three FXP-Recovery/DoomLord-Recovery/AromaFM ;D
EDIT: It should be noted that this kernel is based on the official CyanogenMod 9 RC2 release for the Xperia Play, not FXP-CM9. I don't know how different it will behave but there are a lot of sourcecode changes compared to the FXP-CM9.
Click to expand...
Click to collapse
Fxp is CyanogenMod for xperia.
Sent from my R800x using xda app-developers app
idiotzach15 said:
Fxp is CyanogenMod for xperia.
Sent from my R800x using xda app-developers app
Click to expand...
Click to collapse
Yes I know that, but FXP is an unsupported and unofficial fork. This kernel however, based on official cm9 for zeus, has been modified for inclusion into the official CM9 device tree. There are a LOT of source-level differences, for example the official CM9 for zeus (including this kernel) has no bfq scheduler and revised netfilter code (which wifi tethering relies on, it needs to be tested). And many other things. The reason I'm stating this is because the tutorial we have for building a zeus kernel uses the original fxp-cm9 kernel as a base.
It was info for those who want to use/examine the Lupus source for whatever reason. I for one can't build the kernel from source, I get ipt_ecm.c errors (trying to sort it out with wedgess help, seems to be case-insensitive source and/or mismatched netfilter code from different kernels). Either wedgess has committed an untested source change or my toolchain (from Doomlord) or Linux environment is borked.
Seems that mounting USB Mass Storage in Recovery is broken with this kernel, or is it just me? Can anybody else test it?
CosmicDan said:
Seems that mounting USB Mass Storage in Recovery is broken with this kernel, or is it just me? Can anybody else test it?
Click to expand...
Click to collapse
I know for a fact that DooMLoRD's recovery doesn't call the UMS properly with CyanogenMod. Last time I looked into it, I read that it's something to do with whatever rom you're running, in conjunction with the kernel, itself. In other words, DooMLoRD makes his stuff to work with stock, and because of that, there will be differences when using his stuff with CyanogenMod.
As the topic states..
Can someone here give any explanation on the MSM_CPUFreq and Simple_Ondemand GPU governors?
Have searched on Google - but can't find anything about those two regarding benefits and non-benefits with one of em' enabled and choosen.
Msm_cpufreq i dont know about but Simple Ondemand is actually a Governor for the gpu to run efficiently e.g saving battery with minimal compromize for performance.
This will allow you to load unsigned kernel modules. These kernel modules are now compatible with OC1 AND OF1!
Devs do not use my work without permission!
Do not deviate from the instructions or try to use any other kernel modules unless you know what you are doing.
{
"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"
}
Flash the downloaded zip in FlashFire or Safestrap:
OC1
https://www.androidfilehost.com/?fid=24459283995307174
OF1
https://www.androidfilehost.com/?fid=24459283995307172
Credits:
This is completely based off of @jeboo's original BypassLKM exploit on MK2.
Modload script updated by @Surge1223
@stang5litre for helping with my late night screwups.
@npjohnson for helping me get my start on this.
@bkkzak and @mugsy77 for OF1 testing
@Edgardo_Uchiha for the startup script suggestion
Kernel modules compiled and tested by myself and all mdk users on my AIO kernel
These are the exact same modules that mdk users have.
Some are not there right now but I am working towards getting more added.
CPU GovernorsAbyssplug:
Abyssplug governor is a modified hotplug governor.
Alucard
A favourite choice and one of the original governors that Alucard_24 made. Alucard is based on ondemand but has been heavily tweaked to bring better battery life and performance. It has been known to be battery friendly without sacrificing much performance.
ArterActive
It is an interactive CPU governor port from newer source code. It has more optimizations for Snapdragon 80x processors.
ConservativeX
Developed by Imoseyon (feat. briefly in the Lean Kernel for Galaxy Nexus), the ConservativeX governor behaves like the Conservative governor with the added benefit of locking the CPU frequency to the lowest interval when the screen is off. This governor may additionally perform hotplugging on CPU1, but there is no documentation to confirm that suspicion at this time.
Darkness
It's based on nightmare but more simple and fast, basic configs but very complex structure. It is an updated version of the nightmare gov, so far it is quite stable in tests
IntelliActive
Based off Google's Interactive governor with the following enhancements:
1. self-boost capability from input drivers (no need for PowerHAL assist)
2. two phase scheduling (idle/busy phases to prevent from jumping directly to max freq
3. Checks for offline cpus and short circuits some unnecessary checks to improve code execution paths. Therefore, it avoids CPU hotplugging.
Created by Faux
IntelliDemand:
Intellidemand aka Intelligent Ondemand from Faux is yet another governor that's based on ondemand. Unlike what some users believe, this governor is not the replacement for OC Daemon (Having different governors for sleep and awake). The original intellidemand behaves differently according to GPU usage. When GPU is really busy (gaming, maps, benchmarking, etc) intellidemand behaves like ondemand. When GPU is 'idling' (or moderately busy), intellidemand limits max frequency to a step depending on frequencies available in your device/kernel for saving battery. This is called browsing mode. We can see some 'traces' of interactive governor here. Frequency scale-up decision is made based on idling time of CPU. Lower idling time (<20%) causes CPU to scale-up from current frequency. Frequency scale-down happens at steps=5% of max frequency. (This parameter is tunable only in conservative, among the popular governors)
To sum up, this is an intelligent ondemand that enters browsing mode to limit max frequency when GPU is idling, and (exits browsing mode) behaves like ondemand when GPU is busy; to deliver performance for gaming and such. Intellidemand does not jump to highest frequency when screen is off.
IntelliMM
A rewrite of the old Min Max governor and has 3 cpu states: Idle, UI and Max. Intelliminmax (intellimm) governor is designed to work with the newer SOCs with fixed voltage rails (ie MSM8974+ SOCs). It is designed to work within those fixed voltage ranges in order to maximize battery performance while creating a smooth UI operations. It is battery friendly and spends most of the time at lower frequencies.
Lionheart:
Lionheart is a conservative-based governor which is based on samsung's update3 source.
The tunables (such as the thresholds and sampling rate) were changed so the governor behaves more like the performance one, at the cost of battery as the scaling is very aggressive.
Nightmare
A PegasusQ modified, less aggressive and more stable. A good compromise between performance and battery. In addition to the SoD is a prevention because it usually does not hotplug.
OndemandPlus
Ondemandplus is an ondemand and interactive-based governor that has additional power-saving capabilities while maintaining very snappy performance. While the interactive governor provides a modern and sleek framework, the scaling logic has been been re-written completely. Reports have found that users find ondemandplus as a more battery friendly governor. In ondemandplus, the downscaling behavior from ondemand is only very slightly modified. However, the upscaling has been modified to not scale up to maximum frequency immediately.
Optimax
This is based on ONDEMAND, like almost all governors that have arisen from XDA. It contains some enhancements from LG, particularly to freq boost handling so it will boost to a set level, almost like HTC's governor. It has different tunables to the HTC governor but it behaves pretty similar, the tunables it comes with default are a bit more conservative.
It originates from Cl3kener's Uber kernel for Nexus 5, where it has quite a reputation for battery life
PegasusQ
The Pegasusq is a multi-core based on the Ondemand governor and governor with integrated hot-plugging. It is quite stable and has the same battery life as ondemand. Ongoing processes in the queue, we know that multiple processes can run simultaneously on. These processes are active in an array, which is a field called "Run Queue" queue that is ongoing, with their priority values arranged (priority will be used by the task scheduler, which then decides which process to run next).
To ensure that each process has its fair share of resources, each will run for a certain period and will eventually stop and then again placed in the queue until it is your turn again. If a program is terminated, so that others can run the program with the highest priority in the current queue is executed.
Smartmax
Smartmax is a mix between ondemand and smartassv2. It behaves mostly like smartass with the concept of an "ideal" frequency. By default this is configured for battery saving, so this is NOT a gaming or benchmark governor! Additionally, to make it "snappy", smartmax has "touch poke". So input events from the touchscreen will boost the cpu for a specific time to a specific frequency. Developed by XDA user Maxwen.
Wheatley:
in short words this govenor is build on “ondemand” but increases the C4 state time of the CPU and doing so trying to save juice.
YankActive
A slightly modified interactive based governor by Yank555.lu. It has battery tweaks added onto it so expect better battery life! Based on user reports, this governor behaves more battery friendly than the original interactive governor without sacrificing performance.
Post3:
IO SchedulersIO Scheduler Comparison
Overall performance:
Best<------------------------------------------------------------------------->Worst
FIOPS > Noop > ZEN > Tripndroid > SIO > SIOplus > VR > Deadline > CFQ
Multitasking performance:
Less Apps<------------------------------------------------------------>Many Apps
Noop < FIFO < FIOPS < SIO < SIOplus < Tripndroid < ZEN < Deadline < VR < CFQ
Battery life:
Best<-------------------------------------------------------------------------> Worst
Noop > FIFO > FIOPS > SIO > SIOplus > ZEN > Tripndroid > Deadline > VR > CFQ
CFQ
Completely Fair Queuing scheduler maintains a scalable per-process I/O queue and attempts to distribute the available I/O bandwidth equally among all I/O requests. Each per-process queue contains synchronous requests from processes. Time slice allocated for each queue depends on the priority of the 'parent' process. V2 of CFQ has some fixes which solves process' i/o starvation and some small backward seeks in the hope of improving responsiveness.
Advantages:
Considered to deliver a balanced i/o performance.
Easiest to tune.
Excels on multiprocessor systems.
Best database system performance after deadline.
Disadvantages:
Some users report media scanning takes longest to complete using CFQ. This could be because of the property that since the bandwidth is equally distributed to all i/o operations during boot-up, media scanning is not given any special priority.
Jitter (worst-case-delay) exhibited can sometimes be high, because of the number of tasks competing for the disk.
Deadline
Goal is to minimize I/O latency or starvation of a request. The same is achieved by round robin policy to be fair among multiple I/O requests. Five queues are aggressively used to reorder incoming requests.
Advantages:
Nearly a real time scheduler.
Excels in reducing latency of any given single I/O.
Best scheduler for database access and queries.
Bandwidth requirement of a process - what percentage of CPU it needs, is easily calculated.
Like noop, a good scheduler for solid state/flash drives.
Disadvantages:
When system is overloaded, set of processes that may miss deadline is largely unpredictable.
FIFO (First in First Out):
First in First Out Scheduler. As the name says, it implements a simple priority method based on processing the requests as they come in.
Benefits:
- Serves I/O requests with least number of cpu cycles.
- Is suitable for flash drives because there is no search errors
- Good data throughput on db systems
Disadvantages:
- Reducing the number of CPU cycles corresponds to a simultaneous decline in performance
- Not very good at multitasking
FIOPS (Fair IOPS):
This new I/O scheduler is designed around the following assumptions about Flash-based storage devices: no I/O seek time, read and write I/O cost is usually different from rotating media, time to make a request depends upon the request size, and high through-put and higher IOPS with low-latency. FIOPS (Fair IOPS) ioscheduler tries to fix the gaps in CFQ. It's IOPS based, so it only targets for drive without I/O seek. It's quite similar like CFQ, but the dispatch decision is made according to IOPS instead of slice.
Benefits:
- Achieves high read and write speeds in benchmarks
- Faster app launching time and overall UI experience
- Good battery life
Disadvantages:
- Not very common in most kernels
- Not the most responsive IO scheduler (Can make phone lag)
- Not good at heavy multitasking
Noop
Inserts all the incoming I/O requests to a First In First Out queue and implements request merging. Best used with storage devices that does not depend on mechanical movement to access data (yes, like our flash drives). Advantage here is that flash drives does not require reordering of multiple I/O requests unlike in normal hard drives.
Advantages:
Serves I/O requests with least number of cpu cycles. (Battery friendly?)
Best for flash drives since there is no seeking penalty.
Good throughput on db systems.
Disadvantages:
Reduction in number of cpu cycles used is proportional to drop in performance.
SIO
Simple I/O scheduler aims to keep minimum overhead to achieve low latency to serve I/O requests. No priority quesues concepts, but only basic merging. Sio is a mix between noop & deadline. No reordering or sorting of requests.
Advantages:
Simple, so reliable.
Minimized starvation of requests.
Disadvantages:
Slow random-read speeds on flash drives, compared to other schedulers.
Sequential-read speeds on flash drives also not so good.
Sioplus:
Based on the original SIO scheduler with improvements. Functionality for specifying the starvation of async reads against sync reads; starved write requests counter only counts when there actually are write requests in the queue; fixed a bug).
Benefits:
- Better read and write speeds than previous SIO scheduler
Disadvantages:
- Fluctuations in performance may be observed
- Not found in all kernels
Tripndroid:
A new I/O scheduler based on noop, deadline and vr and meant to have minimal overhead. Made by TripNRaVeR
Benefits:
- Great at IO performance and everyday multitasking
- Well rounded and efficient IO scheduler
- Very responsive I/O scheduler (Compared to FIOPS)
Disadvantages:
- Not found in all kernels
- Performance varies between different devices (Some devices perform really well)
VR
Unlike other schedulers, synchronous and asynchronous requests are not treated separately, instead a deadline is imposed for fairness. The next request to be served is based on it's distance from last request.
Advantages:
May be best for benchmarking because at the peak of it's 'form' VR performs best.
Disadvantages:
Performance fluctuation results in below-average performance at times.
Least reliable/most unstable.
ZEN:
ZEN scheduler is based on the VR Scheduler. It's an FCFS (First come, first serve) based algorithm, but it's not strictly FIFO. ZEN does not do any sorting. It uses deadlines for fairness, and treats synchronous requests with priority over asynchronous ones. Other than that, it's pretty much the same as no-op blended with VR features.
Benefits:
- Well rounded IO Scheduler
- Very efficient IO Scheduler
- More stable than VR, more polished
Disadvantages:
- Performance variability can lead to different results (Only performs well sometimes)
- Not found in all kernels
Woot congrats @klabit87 they should love this!!!!
Sent from my stang5litre Edition 5.0 v3
second.......
gj
klabit87 said:
Reserved
Click to expand...
Click to collapse
Congrats my man! Know this was a long time coming for you.
@klabit87
Thanks man!
So what options does this enable that previously weren't available? And do you have a kernel auditor profile that you would care to share (that way settings can be applied more easily)?
bkkzak said:
@klabit87
Thanks man!
So what options does this enable that previously weren't available? And do you have a kernel auditor profile that you would care to share (that way settings can be applied more easily)?
Click to expand...
Click to collapse
This is not my daily device so I can't really tell you exactly what settings will work well but I'm sure a few more people will be able to post what works well for them.
It enables cpu governors that will help with battery life and performance. Some are just for performance so there may be a dip in battery life if they are used.
Others are made for battery conservation. There are descriptions in my aio kernel thread. I will update this thread to reflect them soon.
Can i flash this thru stock recovery or flashfire?
bontiloi said:
Can i flash this thru stock recovery or flashfire?
Click to expand...
Click to collapse
Flashfire. I will correct that soon as I can
Post 2 has been updated with descriptions of the different cpu governors and IOschedulers.
I do plan to add more as time permits. These should be plenty for you guys to use and get accustomed to custom governors.
So locked bl users have the same functionality of a custom kernel.
klabit87 said:
This is not my daily device so I can't really tell you exactly what settings will work well but I'm sure a few more people will be able to post what works well for them.
It enables cpu governors that will help with battery life and performance. Some are just for performance so there may be a dip in battery life if they are used.
Others are made for battery conservation. There are descriptions in my aio kernel thread. I will update this thread to reflect them soon.
Click to expand...
Click to collapse
Thanks!
So I noticed a bit of a problem but didn't have a whole bunch of time to test. I flashed followed your instructions exactly (flashing in newest safestrap with TWRP 3.0.0) and it works great. Then I decided to uninstall Safestrap (so I don't get the annoying pre-boot screen), BUT I couldn't load Safestrap app - it kept force closing. So I tried using your NC5 flasher to flash NC5 kernel, it seemed to work fine and I hit reboot in the app. Then when rebooting I hit 'recovery' on the SS screen and it booted into the rom... So obviously NC5 kernel was never flashed and this makes me think that once these kernel modules have been applied, then another kernel can't be flashed?
I'm not sure if anyone else has experienced this but just wanted to bring it to your attention. S4 is no longer my daily driver (N6P now) but I still use it as a media device.
bkkzak said:
Thanks!
So I noticed a bit of a problem but didn't have a whole bunch of time to test. I flashed followed your instructions exactly (flashing in newest safestrap with TWRP 3.0.0) and it works great. Then I decided to uninstall Safestrap (so I don't get the annoying pre-boot screen), BUT I couldn't load Safestrap app - it kept force closing. So I tried using your NC5 flasher to flash NC5 kernel, it seemed to work fine and I hit reboot in the app. Then when rebooting I hit 'recovery' on the SS screen and it booted into the rom... So obviously NC5 kernel was never flashed and this makes me think that once these kernel modules have been applied, then another kernel can't be flashed?
I'm not sure if anyone else has experienced this but just wanted to bring it to your attention. S4 is no longer my daily driver (N6P now) but I still use it as a media device.
Click to expand...
Click to collapse
Ok thanks. I will look into that. Until then might be best to use flashfire.
I would rather use flashfire and have custom kernel modules than use ss. But I will see what I can do.
Thanks
klabit87 said:
Ok thanks. I will look into that. Until then might be best to use flashfire.
I would rather use flashfire and have custom kernel modules than use ss. But I will see what I can do.
Thanks
Click to expand...
Click to collapse
For now, how do I revert the kernel mods so that I can flash NC5 Kernel, uninstall safestrap, then re-flash kernel mods with FlashFire?
bkkzak said:
For now, how do I revert the kernel mods so that I can flash NC5 Kernel, uninstall safestrap, then re-flash kernel mods with FlashFire?
Click to expand...
Click to collapse
Whether you flash with ss or ff isn't the issue. It's the script. You need to remove the config to start the script in smanager on startup. There is an error in the module loading. I will be fixing that this evening.
klabit87 said:
Whether you flash with ss or ff isn't the issue. It's the script. You need to remove the config to start the script in smanager on startup. There is an error in the module loading. I will be fixing that this evening.
Click to expand...
Click to collapse
Ok; so if I just go into smanager, tap on modload then deselect start on boot and hit save, then reboot, I should be able to load safestrap app and uninstall the bootstrap?
bkkzak said:
Ok; so if I just go into smanager, tap on modload then deselect start on boot and hit save, then reboot, I should be able to load safestrap app and uninstall the bootstrap?
Click to expand...
Click to collapse
Yes. Because then there is nothing to interfere with the kernel memory.
If not let me know because I have another theory. Thanks.
It worked for me in testing but now I do see your issue.
It has been fixed. @bkkzak Go to your busybox app and select install in order to re-install busybox.
Somehow it got borked. But the zip is fixed now. no need to reflash. Just reinstall busybox and all will be fixed.
Sorry for the mess up guys.
Took the plunge last night since I can never leave anything be. I'm running stangs ROM with these modules and love it! Followed directions, flashed with FF and not a problem. Been using app you suggested for tweaking but may look for one with profiles. Thanks again, its like a new toy. Just surprised the page is getting plenty of views but very few downloads of the module or comments... Great work..!
Working great so far. Using darkness gov as it seems to hover on 1 core more than others a hotplugs faster. Looking forward to seeing more all of them added. Thanks!!
Absolutely brilliant work @klabit87! Can't wait to flash this up and tweak. Is our Safestrap v4.01-B02 functional to flash this or does the patch still need to be implemented? I'll use FlashFire if not, probably use FF anyways since I saw a confirmation above.
So I've been hearing Schedutil is the most balanced governor for Android phones cause it can handle battery and performance well.I searched it on internet and found some article about it that my brain can't understand.
Why is it better and how it works? Can anybody explain it to me or provide me some link where I can read about it?
Thank You
It's a CPU governor. Look inside here. This governor requires Linux kernel 4.7+.
I got problem with schedutil on oneplus 9, its the default governor and get low fps while gaming. Maybe is a bug with "games" app what should change to a better governor while gaming... it also have a "performance" option
This governor is quiet ****. Its like ondemand ramping up to max clock when not needed.