btrfs-progs: add udev rule to use mq-deadline on zoned btrfs

As zoned btrfs uses regular writes for metadata, it needs zone write
locking in the IO scheduler. Add a udev rule that configures an IO
scheduler doing zone write locking.

Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
This commit is contained in:
Johannes Thumshirn 2022-01-25 05:22:00 -08:00 committed by David Sterba
parent b788f1dc58
commit 1aa806a66c
2 changed files with 10 additions and 1 deletions

9
64-btrfs-zoned.rules Normal file
View File

@ -0,0 +1,9 @@
SUBSYSTEM!="block", GOTO="btrfs_end"
ACTION!="add|change", GOTO="btrfs_end"
ENV{ID_FS_TYPE}!="btrfs", GOTO="btrfs_end"
# Zoned btrfs needs an IO scheduler that supports zone write locking and
# currently mq-deadline is the only scheduler capable of this.
ATTR{queue/zoned}=="host-managed", ATTR{queue/scheduler}="mq-deadline"
LABEL="btrfs_end"

View File

@ -231,7 +231,7 @@ image_objects = image/main.o image/sanitize.o
all_objects = $(objects) $(cmds_objects) $(libbtrfs_objects) $(convert_objects) \ all_objects = $(objects) $(cmds_objects) $(libbtrfs_objects) $(convert_objects) \
$(mkfs_objects) $(image_objects) $(libbtrfsutil_objects) $(mkfs_objects) $(image_objects) $(libbtrfsutil_objects)
udev_rules = 64-btrfs-dm.rules udev_rules = 64-btrfs-dm.rules 64-btrfs-zoned.rules
ifeq ("$(origin V)", "command line") ifeq ("$(origin V)", "command line")
BUILD_VERBOSE = $(V) BUILD_VERBOSE = $(V)