blk-mq-sched: allow setting of default IO scheduler
[sfrench/cifs-2.6.git] / block / Kconfig.iosched
index 490ef2850faee1f6682e112a7876c35340794502..0715ce93daef42001407f690912a1b2a437e5a6e 100644 (file)
@@ -32,12 +32,6 @@ config IOSCHED_CFQ
 
          This is the default I/O scheduler.
 
-config MQ_IOSCHED_DEADLINE
-       tristate "MQ deadline I/O scheduler"
-       default y
-       ---help---
-         MQ version of the deadline IO scheduler.
-
 config CFQ_GROUP_IOSCHED
        bool "CFQ Group Scheduling support"
        depends on IOSCHED_CFQ && BLK_CGROUP
@@ -69,6 +63,56 @@ config DEFAULT_IOSCHED
        default "cfq" if DEFAULT_CFQ
        default "noop" if DEFAULT_NOOP
 
+config MQ_IOSCHED_DEADLINE
+       tristate "MQ deadline I/O scheduler"
+       default y
+       ---help---
+         MQ version of the deadline IO scheduler.
+
+config MQ_IOSCHED_NONE
+       bool
+       default y
+
+choice
+       prompt "Default single-queue blk-mq I/O scheduler"
+       default DEFAULT_SQ_NONE
+       help
+         Select the I/O scheduler which will be used by default for blk-mq
+         managed block devices with a single queue.
+
+       config DEFAULT_SQ_DEADLINE
+               bool "MQ Deadline" if MQ_IOSCHED_DEADLINE=y
+
+       config DEFAULT_SQ_NONE
+               bool "None"
+
+endchoice
+
+config DEFAULT_SQ_IOSCHED
+       string
+       default "mq-deadline" if DEFAULT_SQ_DEADLINE
+       default "none" if DEFAULT_SQ_NONE
+
+choice
+       prompt "Default multi-queue blk-mq I/O scheduler"
+       default DEFAULT_MQ_NONE
+       help
+         Select the I/O scheduler which will be used by default for blk-mq
+         managed block devices with multiple queues.
+
+       config DEFAULT_MQ_DEADLINE
+               bool "MQ Deadline" if MQ_IOSCHED_DEADLINE=y
+
+       config DEFAULT_MQ_NONE
+               bool "None"
+
+endchoice
+
+config DEFAULT_MQ_IOSCHED
+       string
+       default "mq-deadline" if DEFAULT_MQ_DEADLINE
+       default "none" if DEFAULT_MQ_NONE
+
 endmenu
 
 endif