File 60-io-scheduler.rules of Package systemd.20337

# Set optimal IO schedulers for HDD and SSD

ACTION!="add", GOTO="scheduler_end"
SUBSYSTEM!="block", GOTO="scheduler_end"

# Determine if BLK-MQ is enabled
TEST=="%S%p/mq", ENV{.IS_MQ}="1"

# Determine if device has multiple hardware queues
TEST=="%S%p/mq/1", ENV{.HAS_MQ}="1"

# MQ: BFQ scheduler for single queue HDD
ENV{.IS_MQ}=="1", ENV{.HAS_MQ}!="1", ATTR{queue/rotational}!="0", ATTR{queue/scheduler}="bfq"

# Do not change scheduler if `elevator` cmdline parameter is set
IMPORT{cmdline}="elevator"
ENV{elevator}=="?*", GOTO="scheduler_end"

# Non-MQ: CFQ scheduler for HDD
ENV{.IS_MQ}!="1", ATTR{queue/rotational}!="0", ATTR{queue/scheduler}="cfq"
# Non-MQ: deadline scheduler for SSD
ENV{.IS_MQ}!="1", ATTR{queue/rotational}=="0", ATTR{queue/scheduler}="deadline"

LABEL="scheduler_end"

openSUSE Build Service is sponsored by