ZFS already sets elevator=noop for wholedisk vdevs (for all pools), but
typical root-on-ZFS installations use partitions. This sets
elevator=noop on the disks in the root pool.
Ubuntu 16.04 and 16.10 had this. It was lost in 17.04 due to Debian
switching to this upstream initramfs script.
Signed-off-by: Richard Laager <rlaager@wiktel.com>
/bin/sh
fi
+ # Set elevator=noop on the root pool's vdevs' disks. ZFS already
+ # does this for wholedisk vdevs (for all pools), so this is only
+ # important for partitions.
+ "${ZPOOL}" status -L "${ZFS_RPOOL}" 2> /dev/null |
+ awk '/^\t / && !/(mirror|raidz)/ {
+ dev=$1;
+ sub(/[0-9]+$/, "", dev);
+ print dev
+ }' |
+ while read i
+ do
+ if [ -e "/sys/block/$i/queue/scheduler" ]
+ then
+ echo noop > "/sys/block/$i/queue/scheduler"
+ fi
+ done
+
+
# ----------------------------------------------------------------
# P R E P A R E R O O T F I L E S Y S T E M