[Galaxy S6 / S6 Edge Unified Development] The Sickness:
For performance:

Single-core:

- Performance - Best

- Min Max - Great

Multi-core:

- Performance - Best

- Min Max - Great

For battery life:

Single-core:

- Conservative - Best

- Powersave - Good

Multi-core:

- Conservative - Best

- SLP/Sleepy - Great

- Perfomance may cry (PMC) - Best

- Powersave - Good

- Ktoonservative(Q) - Great

- Smartmax - Best

- ZZMove/ZZmanX - Requires tuning, use battery plus or battery profile

For balanced battery saving and performance:

Single-core:

- Interactive/Intelliactive - Best

- Ondemand/OndemandX - Stock, Best

- SmartassV2 - Great

Multi-core:

- MSM DCSV - Great, not common

- LulzactiveQ - Good

- Intelliactive - Good

- Interactive/InteractiveX - Great

- Ondemandplus - Great

- Darkness - Great

- Nightmare - Great

- Yankactive - Great

- Ondemand/OndemandX - Stock, Best

- Pegasus(q/d) - Best

- SmartassV2 - Great

- Wheatley - Good

- Hotplug/HotplugX - Good

- NeoX - Great

- HYPER - Best

- ZZMove/ZZmanX - Requires tuning, use optimized or default profile

- Dancedance - Good

For gaming:

Single-core:

- Interactive/InteractiveX - Best

- Performance - Great

- Ondemand/OndemandX - Great

- SmartassV2 - Best

Multi-core:

- Lionheart/LionheartX - Best

- Dancedance - Great

- Intelliactive - Great

- Yankactive - Good

- NeoX - Great

- Interactive/InteractiveX - Best

- SmartassV2 - Great

- Pegasus(Q/D) - Best

- Ondemand/OndemandX - Great

- HYPER - Best

- Performance - Great

- LulzactiveQ - Best

- Intellidemand - Good

- ZZMove/ZZmanX - Requires tuning, use gaming or performance profile

Other CPU Governors not mentioned in the recommended section are either not used by people anymore or they are not suited for most people or have been removed from kernels.

Why change your phones I/O Scheduler?

Most phone manufacturers keep your phones I/O Schedulers locked so users are unable to modify any values which could change the performance of your phone. However, once your phone is rooted, you can change these values allowing the potential to boost your phones performance and even slightly increase battery life. Here is a thorough guide on all of the common i/o schedulers.

What is an I/O Scheduler:

Input/output (I/O) scheduling is a term used to describe the method computer operating systems decide the order that block I/O operations will be submitted to storage volumes. I/O Scheduling is sometimes called 'disk scheduling'.

I/O schedulers can have many purposes depending on the goal of the I/O scheduler, some common goals are:

- To minimise time wasted by hard disk seeks.

- To prioritise a certain processes' I/O requests.

- To give a share of the disk bandwidth to each running process.

- To guarantee that certain requests will be issued before a particular deadline.

Which schedulers are available?

CFQ

Deadline

VR

Noop

Anticipatory

BFQ

FIOPS

SIO (Simple)

Row

ZEN

Sioplus

FIFO

Tripndroid

Descriptions:

Anticipatory:

Two important things here are indicative of that event:

- Looking on the flash drive is very slow from boot

- Write operations while at any time are processed, however, be read operations preferred, ie, this scheduler returns the read operations a higher priority than the write operations.

Benefits:

- Requests of read accesses are never treated secondarily, that has equally good reading performance on flash drives like noop.

Disadvantages:

- Requests from process operations are not always available

- Reduced write performance on high-performance hard drives

- Not very common in most kernels (or even phones these days)

CFQ:

The CFQ - Completely Fair Queuing - similar to the Dead Line maintains a scalable continuous Process-I/O, the available I / O bandwidth is fairly and evenly shared to all I / O requests to distribute. It creates a statistics between blocks and processes. With these statistics it can "guess" when the next block is requested by what process, each process queue contains requests of synchronous processes, which in turn is dependent upon the priority of the original process. There the V2 version has some fixes, such as I / O request improvements, hunger fixes , and some small search backward integrated to improve responsiveness.This is the default IO scheduler for Samsung smartphones.

Benefits:

- Has a well balanced I / O performance

- Excellent on multiprocessor systems

- Easiest to tune.

- Best performance of the database after the deadline

- Regarded as a stable I/O scheduler

- Good for multitasking

Disadvantages:

- Can make your phone lag when multitasking between intensive applications

- 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) can sometimes be very high because the number of competing with each other process tasks

Deadline:

This scheduler has the goal of reducing I / O wait time of a process of inquiry. This is done using the block numbers of the data on the drive. This also blocks an outlying block numbers are processed, each request receives a maximum delivery time. This is in addition to the Governor BFQ, it is very popular and is in many well known kernels.

Benefits:

- It is nearly a real-time scheduler.

- Excels in reducing latency of any given single I/O

- Best scheduler for database access and queries.

- Does quite well in benchmarks

- Like noop, it is a good scheduler for solid state/flash drives

- Good for light and medium multitasking workloads

Disadvantages:

- If the phone is overloaded, crashing or unexpected closure of processes can occur

- Bad battery life if doing a lot of multitasking

ROW:

ROW stands for "READ Over WRITE"which is the main requests dispatch policy of this algorithm. The ROW IO scheduler was developed with the mobile devices needs in mind. In mobile devices we favor user experience upon everything else,thus we want to give READ IO requests as much priority as possible. In mobile devices we won't have as much parallel threads as on desktops. Usually it's a single thread or at most 2 simultaneous working threads for read & write. Favoring READ requests over WRITEs decreases the READ latency greatly.

The main idea of the ROW scheduling policy is: If there are READ requests in pipe - dispatch them but don't starve the WRITE requests too much. Bellow you'll find a small comparison of ROW to existing schedulers. The test that was run for these measurements is parallel read and write. It is sometimes used by default for custom roms and custom kernels

Benefits:

- Faster UI navigation and better overall phone experience

- Faster boot times and app launch times

- Possibly better battery life

Disadvantages:

- Slower write speeds

- Not a scheduler for benchmarking

- Some intensive applications like games could slow down your phone

SIO (Simple):

It aims to achieve with minimal effort at a low latency I / O requests. Not a priority to put in queue, instead simply merge the requests. This scheduler is a mix between the noop and deadline. There is no conversion or sorting of requests.

Benefits:

- It is simple and stable.

- Reliable I/O scheduler

- Minimized starvation for inquiries

- Good battery life

Disadvantages:

- Slow random write speeds on flash drives as opposed to other schedulers.

- Sequential read speeds on flash drives are not as good as other IO schedulers

Noop:

The noop scheduler is the simplest of them. It is best suited for storage devices that are not subject to mechanical movements, such as our flash drives in our phones use to access the data. The advantage is that flash drives do not require rearrangement of the I / O requests, unlike normal hard drives. the data that come first are written first. It's basically not a real scheduler, as it leaves the scheduling of the hardware.

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

- Does great in benchmarks

Disadvantages:

- Reducing the number of CPU cycles corresponds to a simultaneous decline in performance

- Not the most responsive I/O scheduler

- Not very good at multitasking

VR:

Unlike other scheduling software, synchronous and asynchronous requests are not handled separately, but it will impose a fair and balanced within this deadline requests, that the next request to be served is a function of distance from the last request. It is a very good scheduler with elements of the deadline scheduler. It is the best for MTD Android devices. Vr can make the most of the benchmark points, but it is also an unstable scheduler. Sometimes the scores fluctuate below the average, sometimes it fluctuates above the average.

Benefits:

- Generally excels in random writes.

Disadvantages:

- Performance variability can lead to different results (Only performs well sometimes)

- Very often unstable and unreliable

BFQ:

Instead requests divided into time segments as the CFQ has, on the BFQ budget. The flash drive will be granted an active process until it has exhausted its budget (number of sectors on the flash drive). The awards BFQ high budget does not read tasks. BFQ has received many updates to the scheduler and the performance is consistently improving.

Benefits:

- Has a very good USB data transfer rate.

- The best scheduler for playback of HD video recording and video streaming (due to less jitter than CFQ Scheduler, and others)

- Regarded as a very precise working Scheduler

- Delivers 30% more throughput than CFQ

- Being constantly updated

- Good for multitasking, more responsive than CFQ

Disadvantages:

- Not the best scheduler for benchmarks

- Higher budgets that were allocated to a process that can affect the interactivity and bring with it increased latency.

- Slower UI navigation

ZEN:

Based on the VR Scheduler. It's an FCFS (First come, first serve) based algorithm. It's not strictly FIFO. It does not do any sorting. It uses deadlines for fairness, and treats synchronous requests with priority over asynchronous ones. Other than that, pretty much the same as no-op.

Benefits:

- Well rounded IO Scheduler

- Very efficient IO Scheduler

- More stable than VR, mainly because it doesn't really behave like VR.

- Relatively battery friendly

Disadvantages:

- Not found in all kernels

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

- Good battery life

Disadvantages:

- The same as SIO scheduler

- Not found in all kernels

FIOPS:

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.

Benefits:

- Achieves high read and write speeds in benchmarks, usually performs the best

- Faster app launching time and overall UI experience

- Good battery life

- Low impact to system performance

Disadvantages:

- Not very common in most kernels

- Not the most responsive IO scheduler (Lags in UI)

- Not good for heavy multitasking

FIFO (First in First Out):

A relatively simple io schedulers that does what has been described. It is also known as FCFS (First come first serve) but this really isn't true. It does basic sorting; sorting the processes according to the appropriate order and nothing else. In other words, it is quite similar to noop.

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

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)

- Relatively battery friendly

Disadvantages:

- Not found in all kernels

- Performance varies between different devices (Some devices perform really well)

Recommended IO schedulers:

For everyday usage:

- SIO (My personal favourite)

- NOOP

- CFQ (Forth choice)

- Deadline

- ROW

- Tripndroid (Third choice)

- ZEN (Second choice)

For battery life:

- SIO (Third choice)

- FIOPS (Second choice)

- NOOP (First choice)

- Tripndroid

- ROW (Forth choice)

- FIFO

For gaming:

- Deadline

- CFQ

- SIO (First choice)

- Tripndroid (Second choice)

- ZEN (Third choice)

- BFQ

- ROW

- FIOPS

For performance(Benchmarking):

- NOOP

- Tripndroid (Third Choice)

- SIO

- Deadline (Second choice)

- FIOPS (First choice)

For multitasking:

- BFQ (First choice)

- Deadline (Second choice)

- CFQ (Second choice)