提交 b86dd815 编写于 作者: J Jens Axboe

block: get rid of blk-mq default scheduler choice Kconfig entries

The wording in the entries were poor and not understandable
by even deities. Kill the selection for default block scheduler,
and impose a policy with sane defaults.
Architected-by: NLinus Torvalds <torvalds@linux-foundation.org>
Reviewed-by: NOmar Sandoval <osandov@fb.com>
Signed-off-by: NJens Axboe <axboe@fb.com>
上级 eed64951
...@@ -69,50 +69,6 @@ config MQ_IOSCHED_DEADLINE ...@@ -69,50 +69,6 @@ config MQ_IOSCHED_DEADLINE
---help--- ---help---
MQ version of the deadline IO scheduler. 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 endmenu
endif endif
...@@ -498,15 +498,6 @@ int blk_mq_sched_init(struct request_queue *q) ...@@ -498,15 +498,6 @@ int blk_mq_sched_init(struct request_queue *q)
{ {
int ret; int ret;
#if defined(CONFIG_DEFAULT_SQ_NONE)
if (q->nr_hw_queues == 1)
return 0;
#endif
#if defined(CONFIG_DEFAULT_MQ_NONE)
if (q->nr_hw_queues > 1)
return 0;
#endif
mutex_lock(&q->sysfs_lock); mutex_lock(&q->sysfs_lock);
ret = elevator_init(q, NULL); ret = elevator_init(q, NULL);
mutex_unlock(&q->sysfs_lock); mutex_unlock(&q->sysfs_lock);
......
...@@ -220,17 +220,24 @@ int elevator_init(struct request_queue *q, char *name) ...@@ -220,17 +220,24 @@ int elevator_init(struct request_queue *q, char *name)
} }
if (!e) { if (!e) {
if (q->mq_ops && q->nr_hw_queues == 1) /*
e = elevator_get(CONFIG_DEFAULT_SQ_IOSCHED, false); * For blk-mq devices, we default to using mq-deadline,
else if (q->mq_ops) * if available, for single queue devices. If deadline
e = elevator_get(CONFIG_DEFAULT_MQ_IOSCHED, false); * isn't available OR we have multiple queues, default
else * to "none".
*/
if (q->mq_ops) {
if (q->nr_hw_queues == 1)
e = elevator_get("mq-deadline", false);
if (!e)
return 0;
} else
e = elevator_get(CONFIG_DEFAULT_IOSCHED, false); e = elevator_get(CONFIG_DEFAULT_IOSCHED, false);
if (!e) { if (!e) {
printk(KERN_ERR printk(KERN_ERR
"Default I/O scheduler not found. " \ "Default I/O scheduler not found. " \
"Using noop/none.\n"); "Using noop.\n");
e = elevator_get("noop", false); e = elevator_get("noop", false);
} }
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册