Kyber as default io scheduler on SSD (Linux 50 series) - A mystery

So I wanted to use kyber (instead of mq-deadline) as default io scheduler for my SSD (Toshiba Q300). What I did is very simple, and it works well. I’ve just created a file /etc/udev/rules.d/60-ioscheduler.rules with the following content:

# set scheduler for NVMe
ACTION=="add|change", KERNEL=="nvme[0-9]*", ATTR{queue/scheduler}="none"
# set scheduler for SSD and eMMC
ACTION=="add|change", KERNEL=="sd[a-z]|mmcblk[0-9]*", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="kyber"
# set scheduler for rotating disks
ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="mq-deadline"

After rebooting kyber is working as expected:

sandrito@maverick:~$ cat /sys/block/sda/queue/scheduler
mq-deadline [kyber] none

So far so good. No need to preload kyber-iosched at boot since I’m using ACTION=="add|change".

But why is it that if I also add kyber-iosched in /etc/modules-load.d/modules.conf my laptop performs much better with lower memory usage and CPU temperature? Isn’t kyber module loaded axactly the same way?

This isn’t UB specific so any Ubuntu user could pitch in … maybe and/or would get a wider audience.

You’re right. Thanks, I will try

Done it:

Let’s see how long it takes before I get my first “hey mate, what the hell are you talking about?”

I know that forum… as a visitor. That’s why I posted here first :innocent: :smiley:

I like this corner of paradise, also the UB forum interface is excellent. Same platform as Manjaro.

1 Like