106 lines
2.7 KiB
Plaintext
106 lines
2.7 KiB
Plaintext
|
# SPDX-License-Identifier: GPL-2.0
|
||
|
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_KYBER
|
||
|
tristate "Kyber I/O scheduler"
|
||
|
default y
|
||
|
---help---
|
||
|
The Kyber I/O scheduler is a low-overhead scheduler suitable for
|
||
|
multiqueue and other fast devices. Given target latencies for reads and
|
||
|
synchronous writes, it will self-tune queue depths to achieve that
|
||
|
goal.
|
||
|
|
||
|
config IOSCHED_BFQ
|
||
|
tristate "BFQ I/O scheduler"
|
||
|
default n
|
||
|
---help---
|
||
|
BFQ I/O scheduler for BLK-MQ. BFQ distributes the bandwidth of
|
||
|
of the device among all processes according to their weights,
|
||
|
regardless of the device parameters and with any workload. It
|
||
|
also guarantees a low latency to interactive and soft
|
||
|
real-time applications. Details in
|
||
|
Documentation/block/bfq-iosched.txt
|
||
|
|
||
|
config BFQ_GROUP_IOSCHED
|
||
|
bool "BFQ hierarchical scheduling support"
|
||
|
depends on IOSCHED_BFQ && BLK_CGROUP
|
||
|
default n
|
||
|
---help---
|
||
|
|
||
|
Enable hierarchical scheduling in BFQ, using the blkio
|
||
|
(cgroups-v1) or io (cgroups-v2) controller.
|
||
|
|
||
|
endmenu
|
||
|
|
||
|
endif
|