Skip to content

Instantly share code, notes, and snippets.

@denji
Last active December 10, 2024 01:17
Show Gist options
  • Save denji/9602ee2f7a47297b217e3cd3d9dbfe27 to your computer and use it in GitHub Desktop.
Save denji/9602ee2f7a47297b217e3cd3d9dbfe27 to your computer and use it in GitHub Desktop.
#udev #linux /etc/udev/rules.d/60-ioschedulers.rules ("udevadm control --reload-rules && udevadm trigger")
# /etc/udev/rules.d/60-ioschedulers.rules
# https://github.com/pop-os/default-settings/blob/master_jammy/lib/udev/rules.d/60-block-pop.rules
# https://wiki.archlinux.org/index.php/Improving_performance
# https://wiki.archlinux.org/title/improving_performance#Input/output_schedulers
# https://gist.github.com/Th3Whit3Wolf/2f24b29183be7f8e9c0b05115aefb693
# https://support.purestorage.com/Solutions/Linux/Linux_Reference/Linux_Recommended_Settings
# https://www.kernel.org/doc/html/latest/block/index.html
# https://wiki.ubuntu.com/Kernel/Reference/IOSchedulers
# https://forum.endeavouros.com/t/ssd-scheduler/36109/4
# https://github.com/CachyOS/CachyOS-Settings/blob/master/usr/lib/udev/rules.d/60-ioschedulers.rules
# grep "" /sys/block/*/queue/scheduler
#echo kyber | sudo tee /sys/block/loop*/queue/scheduler
# udevadm control --reload; udevadm trigger
# udevadm control --reload-rules; udevadm trigger
# udevadm monitor
# loop default bfq
#ACTION=="add|change", KERNEL=="loop[0-9]*", ATTR{queue/scheduler}="none"
# ACTION=="add|change", KERNEL=="loop[0-9]*", ATTR{queue/scheduler}="bfq"
# ACTION=="add|change", KERNEL=="loop[0-9]*", ATTR{queue/scheduler}="noop"
# ACTION=="add|change", KERNEL=="loop[0-9]*", ATTR{queue/scheduler}="mq-deadline"
# ACTION=="add|change", KERNEL=="loop[0-9]*", ATTR{queue/scheduler}="kyber"
# set scheduler for NVMe
#ACTION=="add|change", KERNEL=="nvme[0-9]n[0-9]", ATTR{queue/scheduler}="none"
#ACTION=="add|change", KERNEL=="nvme[0-9]*", ATTR{queue/scheduler}="none"
# ACTION=="add|change", KERNEL=="nvme[0-9]n[0-9]", ATTR{queue/scheduler}="kyber"
# ACTION=="add|change", KERNEL=="nvme[0-9]*", ATTR{queue/scheduler}="kyber"
# set scheduler for SSD and eMMC
#ACTION=="add|change", KERNEL=="sd[a-z]|mmcblk[0-9]*", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="bfq"
# ACTION=="add|change", KERNEL=="sd[a-z]|mmcblk[0-9]*", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="mq-deadline"
# 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"
# ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="bfq"
# ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="bfq-sq"
# ACTION=="add|change", KERNEL=="sd[a-z]", ATTR{queue/rotational}=="1", ATTR{queue/scheduler}="bfq-mq"
## -- Pop_OS ----------------------------------------------------------------------------------------
# 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"
# Kyber is recommended for faster storage such as NVME and SATA SSDs.
ACTION=="add|change", SUBSYSTEM=="block", ATTR{queue/rotational}=="0", KERNEL=="nvme?n?", ATTR{queue/scheduler}="kyber"
ACTION=="add|change", SUBSYSTEM=="block", ATTR{queue/rotational}=="0", KERNEL=="sd?", ATTR{queue/scheduler}="kyber"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment