| .. | .. |
|---|
| 3 | 3 | |
|---|
| 4 | 4 | menu "IO Schedulers" |
|---|
| 5 | 5 | |
|---|
| 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 | | - |
|---|
| 68 | 6 | config MQ_IOSCHED_DEADLINE |
|---|
| 69 | 7 | tristate "MQ deadline I/O scheduler" |
|---|
| 70 | 8 | default y |
|---|
| 71 | | - ---help--- |
|---|
| 9 | + help |
|---|
| 72 | 10 | 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 |
|---|
| 73 | 17 | |
|---|
| 74 | 18 | config MQ_IOSCHED_KYBER |
|---|
| 75 | 19 | tristate "Kyber I/O scheduler" |
|---|
| 76 | 20 | default y |
|---|
| 77 | | - ---help--- |
|---|
| 21 | + help |
|---|
| 78 | 22 | The Kyber I/O scheduler is a low-overhead scheduler suitable for |
|---|
| 79 | 23 | multiqueue and other fast devices. Given target latencies for reads and |
|---|
| 80 | 24 | synchronous writes, it will self-tune queue depths to achieve that |
|---|
| .. | .. |
|---|
| 82 | 26 | |
|---|
| 83 | 27 | config IOSCHED_BFQ |
|---|
| 84 | 28 | tristate "BFQ I/O scheduler" |
|---|
| 85 | | - default n |
|---|
| 86 | | - ---help--- |
|---|
| 29 | + help |
|---|
| 87 | 30 | BFQ I/O scheduler for BLK-MQ. BFQ distributes the bandwidth of |
|---|
| 88 | 31 | of the device among all processes according to their weights, |
|---|
| 89 | 32 | regardless of the device parameters and with any workload. It |
|---|
| 90 | 33 | also guarantees a low latency to interactive and soft |
|---|
| 91 | 34 | real-time applications. Details in |
|---|
| 92 | | - Documentation/block/bfq-iosched.txt |
|---|
| 35 | + Documentation/block/bfq-iosched.rst |
|---|
| 93 | 36 | |
|---|
| 94 | 37 | config BFQ_GROUP_IOSCHED |
|---|
| 95 | 38 | bool "BFQ hierarchical scheduling support" |
|---|
| 96 | 39 | depends on IOSCHED_BFQ && BLK_CGROUP |
|---|
| 97 | | - default n |
|---|
| 98 | | - ---help--- |
|---|
| 40 | + select BLK_CGROUP_RWSTAT |
|---|
| 41 | + help |
|---|
| 99 | 42 | |
|---|
| 100 | 43 | Enable hierarchical scheduling in BFQ, using the blkio |
|---|
| 101 | 44 | (cgroups-v1) or io (cgroups-v2) controller. |
|---|
| 102 | 45 | |
|---|
| 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 | + |
|---|
| 103 | 53 | endmenu |
|---|
| 104 | 54 | |
|---|
| 105 | 55 | endif |
|---|