hc
2023-11-22 f743a7adbd6e230d66a6206fa115b59fec2d88eb
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
# 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