Page MenuHomeSolus

Switch to BFQ IO scheduler for slower drives
Closed, ResolvedPublic

Description

Similar to this proposed change for Pop_OS, just they were defaulting to BFQ for all drives, and want to switch SSDs to a better one, meanwhile Solus uses MQ-Deadline and it would be great to use BFQ for slower drives.
I proposed this change 3 years ago while I was still using Solus on a laptop with a super slow eMMC drive, and changing to BFQ brought massive improvements to responsiveness of the system. BFQ also from benchmarks and user responses improves responsiveness. Pop also wants to change SSDs to Kyber, but not all benchmarks actually confirm it is faster, so probably it is not necessary to change from MQ-Deadline.
Could it be considered again to change scheduler for hard drives and eMMC devices (like SD cards)? All it needs is an udev rule with contents:

# BFQ is recommended for slow storage such as rotational block devices and SD cards.
ACTION=="add|change", SUBSYSTEM=="block", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="bfq"
ACTION=="add|change", SUBSYSTEM=="block", KERNEL=="mmcblk?", ATTR{queue/scheduler}="bfq"

Event Timeline

I had just tested this on my sister's laptop (Celeron N2840, 2GB DDR3L@1333Mhz, 16GB eMMC), and I saw no perceivable real world difference, although all I did to test this was running YouTube videos at 720p, 1080p, 720p60, and 1080p60 via Piped with H.264 as the only enabled codec (only way to watch YouTube videos nowadays at above 360p without heavy chopping, interestingly, 1080p60 was almost viewable this way, despite the CPU supposed to not be able to cope with the strain of streaming something like that at all) and going through the file manager (Nautilus, this is on a Budgie DE).

ReillyBrogan triaged this task as Low priority.

Thank you so much @Staudey ! When I was first testing it 4 years ago it really improved things a lot, I hope it will do the same today.

@Jacek Just to be clear, it was Reilly who activated it for our kernel. I just noticed the task was still open, connected it to the commit, and closed it. You should have received the update during the "Christmas Sync", or even earlier if you're using Unstable.