I've already read that the different schedulers really only provide a marginal performance benefit, but I'm still curious. The main ones I always see with kernels in Voltage Control are NOOP, Deadline, CFQ, SIO, & BFQ. What are the differences between them? I can never really find a full answer/explanation.
NoHolidaysForAHooker said:
I've already read that the different schedulers really only provide a marginal performance benefit, but I'm still curious. The main ones I always see with kernels in Voltage Control are NOOP, Deadline, CFQ, SIO, & BFQ. What are the differences between them? I can never really find a full answer/explanation.
Click to expand...
Click to collapse
There are 2 primary performance parameters for schedulers - Throughput and Latency. The differences typically are less than 5%, but it is sufficient to cause fully functional scheduler or not properly functional scheduler (missed calls, lost data...).
The simpler schedulers tended toward throughput, the more complicated schedulers tended toward latency (simple hardware only need simple NOOP version, complex hardware required complicated schedulers from the myriads of diverse tasks and I/O events).
Throughput <- NOOP <- SIO <- Deadline -> CFQ -> BFQ -> Latency.
thanks man, i've read all of that but in bits and pieces so it's great to get it at once to make sense of it. that little spectrum between focusing on throughput vs latency was helpful
NoHolidaysForAHooker said:
thanks man, i've read all of that but in bits and pieces so it's great to get it at once to make sense of it. that little spectrum between focusing on throughput vs latency was helpful
Click to expand...
Click to collapse
It's definitely can be confusing when only in bits and pieces, in large complex systems the I/O schedulers and task schedulers often are intergrated in to one as they share and overlap (scheduler's job is bandwidth distribution).
Schedulers are chosen not directly by performance but by optimal capacity of simultaneous handling events, for example....
NOOP - 2 or less
SIO - 4 or less
Deadline - 8 or less
CFQ - 16 or less
BFQ - greater than 16
guys simple question that needs and answer , what are the best I/O scheduler and Governor in terms of raw speed performance ?
i'm using night-elf kernel v8.5 and this kernel have plenty of them....
Personally I use I/O SIO, by far the fastest. And if you want a good battery and performance use lagfree.
Ondemand as also good values in performance.
Theres a thread that explains you all the schedulers and governors.
For benchmark use sio and performance governor. Just for the show.
The link to the trhead.
http://forum.xda-developers.com/showthread.php?t=1443731
Regards.
ok i'm finally set for I/O = SIO , Governor = smartassV2
the UI feels so much more smoother than before , my default was noob and ondemand
As title says, what is the best setting to be chosen?kindly brief the detail coz im newbie
Sent from my SK17i using XDA
Well it depends on taste and kernel support but for me the best will be interactivex as governor and sio as I/o scheduler, it gives you no lags and good battery life.
i installed x kernel v4, did not have to change the cpu governor or i/o.
i only install nofrills to do benchmark, then removed it afterwards.
best battery life ever on hybrom v16
i think it uses ondemand for cpu, not sure wether it uses noop or deadline for i/o
i am currently testing smartassV2 cpu governor with simple i/o scheduler on krsh3 kernel
so far battery time is better with these settings than the default ondemand governor
http://forum.xda-developers.com/showthread.php?t=1369817
what is the best GPU governor and I/O for S3 ?
and i use foxhound 1.4
thank you
Hi,
You mean CPU governor, right?
Pegasusq for the governor, optimized for quad core processors and for the I/O scheduler I would say Deadline or Noop.
You can read this about I/O shedulers: http://forum.xda-developers.com/showpost.php?p=22134559&postcount=4 or http://forum.xda-developers.com/showpost.php?p=23885668&postcount=1
Ant it depends also of the kernel for the I/O scheduler, some kernels don't have all the I/O schedulers described above.
viking37 said:
Hi,
You mean CPU governor, right?
Pegasusq for the governor, optimized for quad core processors and for the I/O scheduler I would say Deadline or Noop.
You can read this about I/O shedulers: http://forum.xda-developers.com/showpost.php?p=22134559&postcount=4 or http://forum.xda-developers.com/showpost.php?p=23885668&postcount=1
Ant it depends also of the kernel for the I/O scheduler, some kernels don't have all the I/O schedulers described above.
Click to expand...
Click to collapse
OH I mean CPU ^^
thank you
This is a work in progress but hopefully I will be able to build this into something worthwhile.
I do not have an mdk device so I am not able to test personally but will definitely listen to all of your input.
Already Loki'd
Selinux is permissive
CPU Governors:
AbyssPlugV2
Alucard
ArterActive
Conservative
ConservativeX
Darkness
IntelliActive
IntelliDemand
IntelliMM
Interactive
Lionheart
Nightmare
Ondemand (DEFAULT)
OndemandPlus
Optimax
PegasusQ
Performance
Smartmax
Wheatley
YankActive
I/O Schedulers:
CFQ (DEFAULT)
Deadline
FIFO (First In First Out)
FIOPS (Fair I/O Operations Per Second)
Noop
SIO
SIOPlus
Tripndroid
VR
Zen
As I said this is a work in progress so there will be more features added as I get time.
Flash at your own risk! I am not responsible for any damages!
NO MIRRORS!
If there is a problem with a link let me know and I will fix it.
Download AIOkernelR3.zip
Added voltage control
Lower clock frequencies added but will not stay when selected.
This will be fixed but will not pose a problem for now.
Older builds:
AIOkernelR2.zip
Added Faux Sound
Now built with Sabermod 4.9
AIOkernelR1.zip
Built with GCC 4.7
Added lots of cpu governors
Added several ioscheds
SeLinux Permissive
HUGE THANKS!!! to:
@stang5litre
@mettee
for testing countless builds for me.
Source:
Github
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
Reserved
I assume this is the same as included in @stang5litre ROM. Any recommendation of tools to use to change governors?
AliceBToklas said:
I assume this is the same as included in @stang5litre ROM. Any recommendation of tools to use to change governors?
Click to expand...
Click to collapse
Yes it is and I would recommend Kernel Auiditor as that is what I use but any kernel control app should work.
I don't believe I will be adding support for STweaks because it is such an outdated app.
I have read that STweaks has basically been replaced with Synapse.
I am working on more features but they take time.
I will be posting another kernel soon but only have the faux sound added in and I will be using sabermod toolchain now.
I just want to let the users get a feel of it and get you guys opinion and go from there.
Thanks
klabit87 said:
Yes it is and I would recommend Kernel Auiditor as that is what I use but any kernel control app should work.
I don't believe I will be adding support for STweaks because it is such an outdated app.
I have read that STweaks has basically been replaced with Synapse.
I am working on more features but they take time.
I will be posting another kernel soon but only have the faux sound added in and I will be using sabermod toolchain now.
I just want to let the users get a feel of it and get you guys opinion and go from there.
Thanks
Click to expand...
Click to collapse
Thanks. Now that I've gotten the latest ROM install settled I'll install Kernel Auiditor and start to look more at your kernel more. I tend to be a bit conservative with the settings though as I've messed up in the past.
Added AIOKernelR2.
Includes Faux sound and now built with sabermod toolchain.
Tests show it to be more responsive.
klabit87 said:
Added AIOKernelR2.
Includes Faux sound and now built with sabermod toolchain.
Tests show it to be more responsive.
Click to expand...
Click to collapse
Great! Just installed & set up. Busy tonight but will be putting through some paces soon.
Sent from my stang5litre Edition 5.0 using XDA Premium HD app
klabit87 said:
Added AIOKernelR2.
Includes Faux sound and now built with sabermod toolchain.
Tests show it to be more responsive.
Click to expand...
Click to collapse
Is this the Faux sound that the new R2 version supports?
https://play.google.com/store/apps/details?id=com.teamkang.fauxsound
signupstuffid said:
Is this the Faux sound that the new R2 version supports?
https://play.google.com/store/apps/details?id=com.teamkang.fauxsound
Click to expand...
Click to collapse
Yes but from what I understand you don't have to use that app to control it.
You can use others.
I believe the options are there when using kernel aiuditor also.
Has anybody been having any issues with 4g speeds?
klabit87 said:
Yes but from what I understand you don't have to use that app to control it.
You can use others.
I believe the options are there when using kernel aiuditor also.
Click to expand...
Click to collapse
Yes I just looked at kernel aiuditor, and it says it can control Faux sound.
Can I use this kernel on the Phoenix ROM that stang ported?
signupstuffid said:
Yes I just looked at kernel aiuditor, and it says it can control Faux sound.
Can I use this kernel on the Phoenix ROM that stang ported?
Click to expand...
Click to collapse
Yes you should be able to.
Hasn't been tested but I don't see any reason it wouldn't work.
@signupstuffid yes will work with no issues [emoji106] [emoji41]
Sent from my stang5litre Edition 5.0 using Tapatalk
klabit87 said:
Has anybody been having any issues with 4g speeds?
Click to expand...
Click to collapse
Can't say I've noticed anything but will do some tests.
Sent from my stang5litre Edition 5.0 using XDA Premium HD app
stang5litre said:
@signupstuffid yes will work with no issues [emoji106] [emoji41]
Click to expand...
Click to collapse
Working so far on Phoenix. I have used kernel auiditor to adjust faux sound parameters.
AliceBToklas said:
Can't say I've noticed anything but will do some tests.
Sent from my stang5litre Edition 5.0 using XDA Premium HD app
Click to expand...
Click to collapse
Thanks for checking.
signupstuffid said:
Working so far on Phoenix. I have used kernel auiditor to adjust faux sound parameters.
Click to expand...
Click to collapse
And thanks for the confirmation. I knew it should work.
Faux app Works really well. Gonna compare it to kernel auditor. As I just use that for kernel adjustments
Sent from my stang5litre Edition 5.0 using Tapatalk
klabit87 said:
Has anybody been having any issues with 4g speeds?
Click to expand...
Click to collapse
Here are my results this morning. All tests run using Speedtest app against the same server. Using stang's v3. The tests were run consecutively with only the kernel flash/reboot in-between and from exactly the same location.
Results are the average of 2 runs each and all in Mbps. This is also the order in which they were run.
Code:
Kernel Down Up
AIOkernelR2 10.2 12.535
AIOkernelR1 5.985 5.665
Hybridmax 13.94 5.29
Surge 16.815 4.79
Let me know if I can provide any more information or more tests.
AliceBToklas said:
Here are my results this morning. All tests run using Speedtest app against the same server. Using stang's v3. The tests were run consecutively with only the kernel flash/reboot in-between and from exactly the same location.
Results are the average of 2 runs each and all in Mbps. This is also the order in which they were run.
Code:
Kernel Down Up
AIOkernelR2 10.2 12.535
AIOkernelR1 5.985 5.665
Hybridmax 13.94 5.29
Surge 16.815 4.79
Let me know if I can provide any more information or more tests.
Click to expand...
Click to collapse
Thanks. After looking at it myself also I believe the issue I saw was Verizon.
One guy was getting same speeds as I was on my nexus so that rules out the kernel being the problem.
Thanks for your time testing.
Any opinions or suggestions for the next version?
Been looking at overclock, it's just time consuming.