[Q] I/O Settings: What are all the different settings for? - TouchPad General

I know about bfq and cfq but I have no idea about the others.... What are the advantages and disadvantages of each? Anyone know?

Please try to elaborate a little more. Your questions should include more information that can be helpful to the general community as well.

noop is a simple FIFO scheduler that doesn't make any attempt to reorder the queue. Due the massive speed of random read operations and miniscule seek times on flash memory, it is often considered to be the best choice on devices like this where SIO or VR aren't options (and in some cases even outperforms them).
Deadline, as the name implies, imposes a time limit on all IO operations and sorts them into queues based on read versus write operations, pulling from the queues based on which operation is next to expire. I'm not sure of any advantage it would convey over noop or SIO on solid-state memory, and in fact many Android kernels don't even include it any more.
CFQ is much more complicated, sorting IO requests by process and priority and trying to ensure that they are executed in the most efficient order. While the advantages on mechanical drives are immediately obvious, on flash memory the added CPU overhead is largely wasted since seek times are irrelevant.
BFQ is a tweaked version of CFQ. It has been shown to actually improve overall write throughput even on flash memory, but again there is a CPU overhead cost involved that is unlikely to be worth it for day-to-day operations.
The TL;DR version is to use noop until kernels with SIO are available, though of course feel free to try them all and use whatever feels smoothest to you. In the long run it probably doesn't make much noticeable difference.

thanks
awesome info

Related

[Q] Difference Between Schedulers

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

i/o scheduler

Hey Everyone, i wanted to see if anyone changed their i/o scheduler on the stock rom.
I am using NOOP still.... i tried Deadline and CFQ (deadline supposedly gives system reads higher priority)
My benchmarks are quite sporadic... looking to see if you guys changed this yet.

[REF][Super Friendly] Explanation of Governors, I/O Schedulers and Kernels [24-Nov]

Introduction
"It takes few hours to make a thread but it doesn't even take few seconds to say Thanks"- arpith.fbi
Click to expand...
Click to collapse
Code:
Don't be afraid to ask me anything.
I won't bite, but I might lick you.
Just thank me for this super brief thread.
Give credits to this thread by linking it if you're using any of my info.
Thank you to you too
Have you unlocked your bootloader of your current device ? If so, read it ! If not, learn the benifits ! :victory:
What is this thread about ? It is a very brief explanation of every governors and schedulers to let you find the best combo for your device.
I've been searching a lot about informations about Kernels, Governors, I/O Schedulers and also Android Optimization Tips. No matter its Google or XDA or other android forums. I will go into it and try the best I can to find these infos. So I thought of sharing it to here for the Xperia P, U, Sola and Go[COLOR] users.
My main reason to share this is to benefit users for better knowledge about Kernels, Governors, I/O Schedulers and Tips on Android Optimization. I'm not aware of whether where this should be posted, its related to kernels, governors and schedulers so I think it would be best if I share it to here. Yes, I wrote it word by word with references.Happy learning. :angel:
After months on XDA, no matter its in a development forum or Off Topic forum. Users kept on asking what's this what's that. And I'm sure that not all members will understand what is it until they bump into my thread
FAQs regarding on :-
-I/O Schedulers
-Kernel Governers
-Better RAM
-Better Battery
-FAQs
*Will add more when I found something useful.
Click to expand...
Click to collapse
I do a lot of asking by PM, to learn, it doesn't matter whether its a stupid one. (People who know me understands)
With my experience and lots of asking. I managed to find a lot of infos that we can use to optimize our phone.
I will try to explain as clear as I can.
Governors :-
-Smoothass
-Smartass
-SmartassV2
-SavagedZen
-Interactivex
-Lagfree
-Minmax
-Ondemand
-Conservative
-Brazilianwax
-Userspacce
-Powersave
-Performance
-Scary
-Lulzactive *
-Intellidemand *
-Badass *
-Lionheart *
-Lionheartx *
-Virtuous *
* Not enough infomation about it, will add them later
Explanation
OnDemand
Brief
Available in most kernels, and the default governor in most kernels. When the CPU load reaches a certain point, OnDemand will rapidly scale the CPU up to meet the demand, then gradually scale the CPU down when it isn't needed.
Click to expand...
Click to collapse
Review
Brief says all. By a simple explantion, OnDemand scales up to the required frequency to undergo the action you are doing and rapidly scales down after use.
Conservative
Brief
It is similar to the OnDemand governor, but will scale the CPU up more gradually to better fit demand. Conservative governor provides a less responsive experience than OnDemand, but it does save batter
Click to expand...
Click to collapse
Review
Conservative is the opposite of Interactive; it will slowly ramp up the frequency, then quickly drops the frequency once the CPU is no longer under a certain usage.
Interactive
Brief
Available in latest kernels, it is the default scaling option in some stock kernels. Interactive governor is similar to the OnDemand governor with an even greater focus on responsiveness.
Click to expand...
Click to collapse
Review
Interactive is the opposite of Conservative; it quickly scales up to the maximum allowed frequency, then slowly drops the frequency once no longer in use.
Performance
Brief
Performance governer locks the phone's CPU at maximum frequency. While this may sound like an ugly idea, there is growing evidence to suggest that running a phone at its maximum frequency at all times will allow a faster race-to-idle. Race-to-idle is the process by which a phone completes a given task. After that it returns the CPU to extremely efficient low-power state.
Click to expand...
Click to collapse
Review
Good at gaming, Really good. Disadvantages are it may damage your phone if too much usage.
Powersave
Brief
The opposite of the Performance governor, the Powersave governor locks the CPU frequency at the lowest frequency set by the user.
Click to expand...
Click to collapse
Review
Set it to your desired minimum frequency and you won't have to look for your charger for once in a while.
Scary
Brief
A new governor wrote based on Conservative with some Smartass features, it scales accordingly to Conservative's way. It will start from the bottom. It spends most of its time at lower frequencies. The goal of this is to get the best battery life with decent performance. It will give the same performance as Conservative right now.
Click to expand...
Click to collapse
Review
Hmm.. Overall I don't see any difference. After I understand its main objective. I was very curious and decided to use it again. Results are the same.. No difference. Report to me if anyone has tested this.
Userspace
Brief
Userspace is not a governor pre-set, but instead allows for non-kernel daemons or apps with root permissions to control the frequency. Commonly seen as a redundant and not useful since SetCPU and NoFrills exist.
Click to expand...
Click to collapse
Review
Highly not recommended for use.
Smartass
Brief
It is based on the concept of the Interactive governor.
Smartass is a complete rewrite of the code of Interactive. Performance is on par with the “old” minmax and Smartass is a bit more responsive. Battery life is hard to quantify precisely but it does spend much more time at the lower frequencies.
Click to expand...
Click to collapse
Review
Smartass is rather the governer that will save your battery and make use of your processor for daily use. Like the brief explantion said " Smartass will spend much more time on lower frequencies." So logically you don't need for sleep profiles anymore.
SmartassV2
Brief
Theoretically a merge of the best properties of Interactive and OnDemand; automatically reduces the maximum CPU frequency when phone is idle or asleep, and attempts to balance performance with efficiency by focusing on an "ideal" frequency.
Click to expand...
Click to collapse
Review
This is a much favourite to everybody. I believe almost everyone here is using SmartassV2. Yes, it is better than Smartass because of its speed no scaling frequencies from min to max at a short period of time.
Smoothass
Brief
A much more aggressive version of Smartass that is very quick to ramp up and down, and keeps the idle/asleep maximum frequency even lower.
Click to expand...
Click to collapse
Review
In my personal experience, this is really useful for daily use. And yes, I'm using it all the time. It may decrease your battery life. I saw it OC itself to 1.4 gHz when I set it to 1.2. Good use. Recommended.
Brazilianwax
Brief
Similar to SmartassV2. More aggressive scaling, so more performance, but less battery.
Click to expand...
Click to collapse
Review
Based on SmartassV2. But its advantage is a much more performance wise governor.
SavagedZen
Brief
Another SmartassV2 based governor. Achieves good balance between performance & battery as compared to Brazilianwax.
Click to expand...
Click to collapse
Review
Not much difference compared to SmartassV2. But it is a optimized version of it.
Lagfree
Brief
Again, similar to Smartass but based on Conservative rather than Interactive, instantly jumps to a certain CPU frequency after the device wakes, then operates similar to Conservative. However, it has been noted as being very slow when down-scaling, taking up to a second to switch frequencies.
Click to expand...
Click to collapse
Review
Used it before. Like the name of the governor, I didn't experience any lag whatsoever. Another governor based on performance, but not battery efficient.
MinMax
Brief
MinMax is just a normal governor. No scaling intermediate frequency scaling is used.
Click to expand...
Click to collapse
Review
Well.. it's too normal that I can't really say anything about it..
Interactivex
Brief
InteractiveX governor is based heavily on the Interactive governor, enhanced with tuned timer parameters to optimize the balance of battery vs performance. InteractiveX governor's defining feature, however, is that it locks the CPU frequency to the user's lowest defined speed when the screen is off.
Click to expand...
Click to collapse
Review
A better understanding from the brief to you users, this is an Interactive governor with a wake profile. More battery friendly than Interactive.
Due to current kernels doesn't have these governors. I will be delaying the explanation, its very interesting. If you want it ASAP, post below
-Lulzactive *
-Intellidemand *
-Badass *
-Lionheart *
-Lionheartx *
-Virtuous *
**********************************************************************************************************************************************************************
I/O Schedulers(thanks to droidphile)
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.
Click to expand...
Click to collapse
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. 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.
Click to expand...
Click to collapse
Anticipatory
Based on two facts
i) Disk seeks are really slow.
ii) Write operations can happen whenever, but there is always some process waiting for read operation.
So anticipatory prioritize read operations over write. It anticipates synchronous read operations.
Advantages:
Read requests from processes are never starved.
As good as noop for read-performance on flash drives.
Disadvantages:
'Guess works' might not be always reliable.
Reduced write-performance on high performance disks.
Click to expand...
Click to collapse
BFQ
nstead of time slices allocation by CFQ, BFQ assigns budgets. Disk is granted to an active process until it's budget (number of sectors) expires. BFQ assigns high budgets to non-read tasks. Budget assigned to a process varies over time as a function of it's behavior.
Advantages:
Believed to be very good for usb data transfer rate.
Believed to be the best scheduler for HD video recording and video streaming. (because of less jitter as compared to CFQ and others)
Considered an accurate i/o scheduler.
Achieves about 30% more throughput than CFQ on most workloads.
Disadvantages:
Not the best scheduler for benchmarking.
Higher budget assigned to a process can affect interactivity and increased latency.
Click to expand...
Click to collapse
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.
Click to expand...
Click to collapse
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.
Click to expand...
Click to collapse
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.
Click to expand...
Click to collapse
Credits
-droidphile
-kokzhanjia
Reserved for Kernel infos
Thanks! Very useful for beginners like me..
Bookmarked!
littleg33k said:
Thanks! Very useful for beginners like me..
Bookmarked!
Click to expand...
Click to collapse
Great
Sent from my WT19i with Real Xperia r1

[i9100] ONDEMAND vs PEGASUSQ

I've read that pegasusq should be aware of multi-core CPUs and should be able to deactivate not-needed cores.
But, on SGS2 a lot of people keeps using ondemand. Even CM keeps ondemand as default scheduler.
Is ondemand still better option as maybe it is better to run one core at 200MHz using ondemand then one core at 500MHz using pegasusq... ?
tnttrx said:
I've read that pegasusq should be aware of multi-core CPUs and should be able to deactivate not-needed cores.
But, on SGS2 a lot of people keeps using ondemand. Even CM keeps ondemand as default scheduler.
Is ondemand still better option as maybe it is better to run one core at 200MHz using ondemand then one core at 500MHz using pegasusq... ?
Click to expand...
Click to collapse
This could be helpful.
Please search next time as I just typed "ondemand vs pegasusq" into the search bar.
kilometers4 said:
This could be helpful.
Please search next time as I just typed "ondemand vs pegasusq" into the search bar.
Click to expand...
Click to collapse
thx for pointing out, but in that thread I've just found things that I already mentioned: pegasusq is made for multi-cores and it has integrated hotplug.
unfortunately, I had no chance to find any real-world use comparison of pegasusq and ondemand (or other schedulers) regarding power consumption nor responsiveness.
tnttrx said:
thx for pointing out, but in that thread I've just found things that I already mentioned: pegasusq is made for multi-cores and it has integrated hotplug.
unfortunately, I had no chance to find any real-world use comparison of pegasusq and ondemand (or other schedulers) regarding power consumption nor responsiveness.
Click to expand...
Click to collapse
pegasusq in my opinion is the better governor to use, largely because it can tell if is more than one core and respond accordingly. Pair that with CPU Sleeper Dual Core and you're golden as far as power saving awareness. SIO I hear is the best i/o scheduler to use for power consumption, deadline in my opinion is the best for pure performance however be careful because If you do overload and a process misses a deadline it will hiccup or even freeze.

[Kernel][MDK] AIO kernel TW 5.0.1

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 Governors​Abyssplug:
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 Schedulers​IO 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.

Categories

Resources