The NOOP scheduler is the simplest I/O scheduler for the Linux kernel. This scheduler was developed by Jens Axboe. The NOOP scheduler inserts all incoming I/O requests into a simple, unordered FIFO queue and implements request merging. The scheduler assumes I/O performance optimization will be handled at some other layer of the I/O hierarchy; e.g., at the block device; by an intelligent HBA such as a Serial Attached SCSI (SAS) RAID controller or by an externally attached controller such as a storage subsystem accessed through a switched Storage Area Network). NOOP scheduler is best used with solid state devices such as flash memory or in general with devices that do not depend on mechanical movement to access data (meaning typical "hard disk" drive technology consisting of seek time primarily, plus rotational latency). Such non-mechanical devices do not require re-ordering of multiple I/O requests, a technique that groups together I/O requests that are physically close together on the disk, thereby reducing average seek time and the variability of I/O service time.
adb shell ~ # cat /sys/block/mmcblk0/queue/scheduler [noop] cfq
adb shell ~ # echo "noop" > /sys/block/mmcblk0/queue/scheduler
To select the noop scheduler for all your block devices you can add
this lines to your userinit.sh script:
# Set "No-op" scheduler for mtdblocks and mmc for i in `ls -1 /sys/block/mtdblock*` /sys/block/mmcblk0 do echo "noop" > $i/queue/scheduler done