![Jens Axboe](/assets/img/avatar_default.png)
Add Kconfig entries to manage what devices get assigned an MQ scheduler, and add a blk-mq flag for drivers to opt out of scheduling. The latter is useful for admin type queues that still allocate a blk-mq queue and tag set, but aren't use for normal IO. Signed-off-by: Jens Axboe <axboe@fb.com> Reviewed-by: Bart Van Assche <bart.vanassche@sandisk.com> Reviewed-by: Omar Sandoval <osandov@fb.com>
119 lines
2.7 KiB
Plaintext
119 lines
2.7 KiB
Plaintext
if BLOCK
|
|
|
|
menu "IO Schedulers"
|
|
|
|
config IOSCHED_NOOP
|
|
bool
|
|
default y
|
|
---help---
|
|
The no-op I/O scheduler is a minimal scheduler that does basic merging
|
|
and sorting. Its main uses include non-disk based block devices like
|
|
memory devices, and specialised software or hardware environments
|
|
that do their own scheduling and require only minimal assistance from
|
|
the kernel.
|
|
|
|
config IOSCHED_DEADLINE
|
|
tristate "Deadline I/O scheduler"
|
|
default y
|
|
---help---
|
|
The deadline I/O scheduler is simple and compact. It will provide
|
|
CSCAN service with FIFO expiration of requests, switching to
|
|
a new point in the service tree and doing a batch of IO from there
|
|
in case of expiry.
|
|
|
|
config IOSCHED_CFQ
|
|
tristate "CFQ I/O scheduler"
|
|
default y
|
|
---help---
|
|
The CFQ I/O scheduler tries to distribute bandwidth equally
|
|
among all processes in the system. It should provide a fair
|
|
and low latency working environment, suitable for both desktop
|
|
and server systems.
|
|
|
|
This is the default I/O scheduler.
|
|
|
|
config CFQ_GROUP_IOSCHED
|
|
bool "CFQ Group Scheduling support"
|
|
depends on IOSCHED_CFQ && BLK_CGROUP
|
|
default n
|
|
---help---
|
|
Enable group IO scheduling in CFQ.
|
|
|
|
choice
|
|
prompt "Default I/O scheduler"
|
|
default DEFAULT_CFQ
|
|
help
|
|
Select the I/O scheduler which will be used by default for all
|
|
block devices.
|
|
|
|
config DEFAULT_DEADLINE
|
|
bool "Deadline" if IOSCHED_DEADLINE=y
|
|
|
|
config DEFAULT_CFQ
|
|
bool "CFQ" if IOSCHED_CFQ=y
|
|
|
|
config DEFAULT_NOOP
|
|
bool "No-op"
|
|
|
|
endchoice
|
|
|
|
config DEFAULT_IOSCHED
|
|
string
|
|
default "deadline" if DEFAULT_DEADLINE
|
|
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
|