hc
2024-02-20 102a0743326a03cd1a1202ceda21e175b7d3575c
kernel/block/Kconfig.iosched
....@@ -3,78 +3,22 @@
33
44 menu "IO Schedulers"
55
6
-config IOSCHED_NOOP
7
- bool
8
- default y
9
- ---help---
10
- The no-op I/O scheduler is a minimal scheduler that does basic merging
11
- and sorting. Its main uses include non-disk based block devices like
12
- memory devices, and specialised software or hardware environments
13
- that do their own scheduling and require only minimal assistance from
14
- the kernel.
15
-
16
-config IOSCHED_DEADLINE
17
- tristate "Deadline I/O scheduler"
18
- default y
19
- ---help---
20
- The deadline I/O scheduler is simple and compact. It will provide
21
- CSCAN service with FIFO expiration of requests, switching to
22
- a new point in the service tree and doing a batch of IO from there
23
- in case of expiry.
24
-
25
-config IOSCHED_CFQ
26
- tristate "CFQ I/O scheduler"
27
- default y
28
- ---help---
29
- The CFQ I/O scheduler tries to distribute bandwidth equally
30
- among all processes in the system. It should provide a fair
31
- and low latency working environment, suitable for both desktop
32
- and server systems.
33
-
34
- This is the default I/O scheduler.
35
-
36
-config CFQ_GROUP_IOSCHED
37
- bool "CFQ Group Scheduling support"
38
- depends on IOSCHED_CFQ && BLK_CGROUP
39
- default n
40
- ---help---
41
- Enable group IO scheduling in CFQ.
42
-
43
-choice
44
-
45
- prompt "Default I/O scheduler"
46
- default DEFAULT_CFQ
47
- help
48
- Select the I/O scheduler which will be used by default for all
49
- block devices.
50
-
51
- config DEFAULT_DEADLINE
52
- bool "Deadline" if IOSCHED_DEADLINE=y
53
-
54
- config DEFAULT_CFQ
55
- bool "CFQ" if IOSCHED_CFQ=y
56
-
57
- config DEFAULT_NOOP
58
- bool "No-op"
59
-
60
-endchoice
61
-
62
-config DEFAULT_IOSCHED
63
- string
64
- default "deadline" if DEFAULT_DEADLINE
65
- default "cfq" if DEFAULT_CFQ
66
- default "noop" if DEFAULT_NOOP
67
-
686 config MQ_IOSCHED_DEADLINE
697 tristate "MQ deadline I/O scheduler"
708 default y
71
- ---help---
9
+ help
7210 MQ version of the deadline IO scheduler.
11
+
12
+config MQ_IOSCHED_DEADLINE_CGROUP
13
+ tristate
14
+ default y
15
+ depends on MQ_IOSCHED_DEADLINE
16
+ depends on BLK_CGROUP
7317
7418 config MQ_IOSCHED_KYBER
7519 tristate "Kyber I/O scheduler"
7620 default y
77
- ---help---
21
+ help
7822 The Kyber I/O scheduler is a low-overhead scheduler suitable for
7923 multiqueue and other fast devices. Given target latencies for reads and
8024 synchronous writes, it will self-tune queue depths to achieve that
....@@ -82,24 +26,30 @@
8226
8327 config IOSCHED_BFQ
8428 tristate "BFQ I/O scheduler"
85
- default n
86
- ---help---
29
+ help
8730 BFQ I/O scheduler for BLK-MQ. BFQ distributes the bandwidth of
8831 of the device among all processes according to their weights,
8932 regardless of the device parameters and with any workload. It
9033 also guarantees a low latency to interactive and soft
9134 real-time applications. Details in
92
- Documentation/block/bfq-iosched.txt
35
+ Documentation/block/bfq-iosched.rst
9336
9437 config BFQ_GROUP_IOSCHED
9538 bool "BFQ hierarchical scheduling support"
9639 depends on IOSCHED_BFQ && BLK_CGROUP
97
- default n
98
- ---help---
40
+ select BLK_CGROUP_RWSTAT
41
+ help
9942
10043 Enable hierarchical scheduling in BFQ, using the blkio
10144 (cgroups-v1) or io (cgroups-v2) controller.
10245
46
+config BFQ_CGROUP_DEBUG
47
+ bool "BFQ IO controller debugging"
48
+ depends on BFQ_GROUP_IOSCHED
49
+ help
50
+ Enable some debugging help. Currently it exports additional stat
51
+ files in a cgroup which can be useful for debugging.
52
+
10353 endmenu
10454
10555 endif