elevator= seems to be confused with MQ and !MQ scheduler

From: Gabriel C
Date: Mon Jul 10 2017 - 11:03:42 EST


Hello,

We are allowed to build all scheduler as modules or build-in setting
defaults with
CONFIG_SCSI_MQ_DEFAULT=y/n / CONFIG_DM_MQ_DEFAULT=y/n.


Following setup:

All scheduler set to Y ( build-in )
CONFIG_DEFAULT_CFQ=y
CONFIG_SCSI_MQ_DEFAULT and CONFIG_DM_MQ_DEFAULT set to N

Boot now with elevator=some_mq_schedule

While it should not even try to use any MQ it will try to set values
from elevator and hang.

Now boot with scsi_mod.use_blk_mq=y dm_mod.use_blk_mq=y
elevator=!some_mq_schedule , hangs too.

This looks better but still some output in dmesg is wrong:

Build scheduler M ( I have cfq mq-deadline Y to have some defaults)
CONFIG_DEFAULT_CFQ=y
CONFIG_SCSI_MQ_DEFAULT and CONFIG_DM_MQ_DEFAULT set to N

Boot with elevator=some_mq_schedule_is_module
Will give an error since it can't find the module and continue with
default cfq which is fine.
Once box is up modprobe the modules you used in elevator= and whatch
your dmesg..

So how is that meant to work now ? use elevator= only you know what
your kernel config looks like ( which probably lots users have no clue
about ) ?

Best Regards,

Gabriel C