For some reason coreelec by default uses I/O scheduler noop which is great for SSDs, but pretty bad for emmc, flash, and rotational drives. The purpose of the scheduler like cfq is to give responsive UI feedback, in exchange for maximum data transfer rate. Noop is only good for SSDs because they have a robust internal controller and super fast IOPS.
Checking with ‘cat /sys/block/mmcblk0/queue/scheduler’ will output ‘[noop] deadline cfq’ which shows support for those 3 schedulers, and I can easily change it by using ‘echo cfq > /sys/block/mmcblk0/queue/scheduler’
However, if I check my external drive I have on usb with, ‘cat /sys/block/sda/queue/scheduler’ it returns with ‘none’. Changing it with echo doesn’t work. Why is this? How can I get scheduler support for that drive?
I also believe testing with bfq over cfq might be worthwhile, since it prioritizes I/O over throughput more.