Blame view

block/Kconfig.iosched 2.71 KB
81f7e3824   Eric Lee   Initial Release, ...
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