Linux Audio

Check our new training course

In-person Linux kernel drivers training

Jun 16-20, 2025
Register
Loading...
v4.17
  1# SPDX-License-Identifier: GPL-2.0
  2if BLOCK
  3
  4menu "IO Schedulers"
  5
  6config 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
 16config 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
 25config 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
 36config 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
 43choice
 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
 60endchoice
 61
 62config DEFAULT_IOSCHED
 63	string
 64	default "deadline" if DEFAULT_DEADLINE
 65	default "cfq" if DEFAULT_CFQ
 66	default "noop" if DEFAULT_NOOP
 67
 68config MQ_IOSCHED_DEADLINE
 69	tristate "MQ deadline I/O scheduler"
 70	default y
 71	---help---
 72	  MQ version of the deadline IO scheduler.
 73
 74config MQ_IOSCHED_KYBER
 75	tristate "Kyber I/O scheduler"
 76	default y
 77	---help---
 78	  The Kyber I/O scheduler is a low-overhead scheduler suitable for
 79	  multiqueue and other fast devices. Given target latencies for reads and
 80	  synchronous writes, it will self-tune queue depths to achieve that
 81	  goal.
 82
 83config IOSCHED_BFQ
 84	tristate "BFQ I/O scheduler"
 85	default n
 86	---help---
 87	BFQ I/O scheduler for BLK-MQ. BFQ distributes the bandwidth of
 88	of the device among all processes according to their weights,
 89	regardless of the device parameters and with any workload. It
 90	also guarantees a low latency to interactive and soft
 91	real-time applications.  Details in
 92	Documentation/block/bfq-iosched.txt
 93
 94config BFQ_GROUP_IOSCHED
 95       bool "BFQ hierarchical scheduling support"
 96       depends on IOSCHED_BFQ && BLK_CGROUP
 97       default n
 98       ---help---
 99
100       Enable hierarchical scheduling in BFQ, using the blkio
101       (cgroups-v1) or io (cgroups-v2) controller.
102
103endmenu
104
105endif
v3.15
 
 1if BLOCK
 2
 3menu "IO Schedulers"
 4
 5config IOSCHED_NOOP
 6	bool
 7	default y
 8	---help---
 9	  The no-op I/O scheduler is a minimal scheduler that does basic merging
10	  and sorting. Its main uses include non-disk based block devices like
11	  memory devices, and specialised software or hardware environments
12	  that do their own scheduling and require only minimal assistance from
13	  the kernel.
14
15config IOSCHED_DEADLINE
16	tristate "Deadline I/O scheduler"
17	default y
18	---help---
19	  The deadline I/O scheduler is simple and compact. It will provide
20	  CSCAN service with FIFO expiration of requests, switching to
21	  a new point in the service tree and doing a batch of IO from there
22	  in case of expiry.
23
24config IOSCHED_CFQ
25	tristate "CFQ I/O scheduler"
26	default y
27	---help---
28	  The CFQ I/O scheduler tries to distribute bandwidth equally
29	  among all processes in the system. It should provide a fair
30	  and low latency working environment, suitable for both desktop
31	  and server systems.
32
33	  This is the default I/O scheduler.
34
35config CFQ_GROUP_IOSCHED
36	bool "CFQ Group Scheduling support"
37	depends on IOSCHED_CFQ && BLK_CGROUP
38	default n
39	---help---
40	  Enable group IO scheduling in CFQ.
41
42choice
 
43	prompt "Default I/O scheduler"
44	default DEFAULT_CFQ
45	help
46	  Select the I/O scheduler which will be used by default for all
47	  block devices.
48
49	config DEFAULT_DEADLINE
50		bool "Deadline" if IOSCHED_DEADLINE=y
51
52	config DEFAULT_CFQ
53		bool "CFQ" if IOSCHED_CFQ=y
54
55	config DEFAULT_NOOP
56		bool "No-op"
57
58endchoice
59
60config DEFAULT_IOSCHED
61	string
62	default "deadline" if DEFAULT_DEADLINE
63	default "cfq" if DEFAULT_CFQ
64	default "noop" if DEFAULT_NOOP
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
65
66endmenu
67
68endif