1# SPDX-License-Identifier: GPL-2.0
2if BLOCK
3
4menu "IO Schedulers"
5
6config MQ_IOSCHED_DEADLINE
7	tristate "MQ deadline I/O scheduler"
8	default y
9	---help---
10	  MQ version of the deadline IO scheduler.
11
12config MQ_IOSCHED_KYBER
13	tristate "Kyber I/O scheduler"
14	default y
15	---help---
16	  The Kyber I/O scheduler is a low-overhead scheduler suitable for
17	  multiqueue and other fast devices. Given target latencies for reads and
18	  synchronous writes, it will self-tune queue depths to achieve that
19	  goal.
20
21config IOSCHED_BFQ
22	tristate "BFQ I/O scheduler"
23	---help---
24	BFQ I/O scheduler for BLK-MQ. BFQ distributes the bandwidth of
25	of the device among all processes according to their weights,
26	regardless of the device parameters and with any workload. It
27	also guarantees a low latency to interactive and soft
28	real-time applications.  Details in
29	Documentation/block/bfq-iosched.rst
30
31config BFQ_GROUP_IOSCHED
32       bool "BFQ hierarchical scheduling support"
33       depends on IOSCHED_BFQ && BLK_CGROUP
34       ---help---
35
36       Enable hierarchical scheduling in BFQ, using the blkio
37       (cgroups-v1) or io (cgroups-v2) controller.
38
39config BFQ_CGROUP_DEBUG
40	bool "BFQ IO controller debugging"
41	depends on BFQ_GROUP_IOSCHED
42	---help---
43	Enable some debugging help. Currently it exports additional stat
44	files in a cgroup which can be useful for debugging.
45
46endmenu
47
48endif
49