2

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
Prabhu
  • 23
  • 1
  • 4

2 Answers2

1

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):

bfq
mq-deadline
kyber-iosched
1

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.

Zan Lynx
  • 597
  • 1
  • 6
  • 14