123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- # 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
|