I was wondering how to enable Kyber scheduler in Ubuntu 17.10, which has kernel 4.13 by default. I got bfq enabled using the instructions from How to enable and use the BFQ scheduler?. When I navigate to my NVMe drive, I am seeing only bfq.

cat /sys/block/nvme0n1/queue/scheduler
[noop] bfq

You can temporarily enable the three available schedulers via:

  • sudo modprobe bfq
  • sudo modprobe mq-deadline
  • sudo modprobe kyber-iosched

You can see the available modules in /lib/modules/<your kernel>/kernel/block.

To enable these modules on boot, you can add the following lines to /etc/modules-load.d/modules.conf (or by creating another .conf in the same directory):


I'm using Fedora 28 and kernel 4.17 but I think it works the same way.

Just set it to "kyber" and it'll autoload the kyber-iosched module.

Some people use scripts and such but I like udev rules. Here's mine from /etc/udev/rules.d/iosched.rules:

ACTION=="add|change", SUBSYSTEM=="block", KERNEL=="sd?", ATTR{queue/scheduler}="bfq"
ACTION=="add|change", SUBSYSTEM=="block", KERNEL=="nvme?n?", ATTR{queue/scheduler}="kyber", ATTR{queue/io_poll_delay}="0"

I'm still experimenting with that io_poll_delay, you don't need it for anything.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.