boot.kernelParams = [ "elevator=none" ] is deprecated, replacement?

In Graham Christensen’s blog “Erase Your Darlings”, he recommends disabling scheduling when ZFS does not control the full disk:

Note: If you do partition the disk, make sure you set the disk’s scheduler to none . ZFS takes this step automatically if it does control the entire disk.

On NixOS, you an set your scheduler to none via:

{ boot.kernelParams = [ "elevator=none" ]; }

However, I’m getting an error that elevator no longer has an effect:

Kernel parameter elevator= does not have any effect anymore.
Please use sysfs to set IO scheduler for individual devices.

Is there a standard/canonical replacement configuration property for this yet?

Sorry to necro-post, but I was just researching the same kernel message about elevator being deprecated and ran across this post in OpenSuse. After checking the individual disks’ IO Schedulers, it seems like they’re all set to None on my system:

find -H /sys/block/* -iname scheduler -print0 -printf ': ' -exec cat '{}' \;

From what I can tell, that matches the previous option passed to elevator, so guessing we can just remove that.

1 Like

I’m not sure to understand how your find command is actually doing more than displaying the value of each device scheduler attribute?

You want to write none (or noop? :thinking: ) to each scheduler file, right?