123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139 |
- 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_TEST
- tristate "Test I/O scheduler"
- depends on DEBUG_FS
- default m
- ---help---
- The test I/O scheduler is a duplicate of the noop scheduler with
- addition of test utlity.
- It allows testing a block device by dispatching specific requests
- according to the test case and declare PASS/FAIL according to the
- requests completion error code.
- 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_ROW
- tristate "ROW I/O scheduler"
- default y
- ---help---
- The ROW I/O scheduler gives priority to READ requests over the
- WRITE requests when dispatching, without starving WRITE requests.
- Requests are kept in priority queues. Dispatching is done in a RR
- manner when the dispatch quantum for each queue is calculated
- according to queue priority.
- Most suitable for mobile devices.
- config IOSCHED_CFQ
- tristate "CFQ I/O scheduler"
- # If BLK_CGROUP is a module, CFQ has to be built as module.
- depends on (BLK_CGROUP=m && m) || !BLK_CGROUP || BLK_CGROUP=y
- 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.
- Note: If BLK_CGROUP=m, then CFQ can be built only as module.
- config CFQ_GROUP_IOSCHED
- bool "CFQ Group Scheduling support"
- depends on IOSCHED_CFQ && BLK_CGROUP
- default n
- ---help---
- Enable group IO scheduling in CFQ.
- config IOSCHED_BFQ
- tristate "BFQ I/O scheduler"
- depends on EXPERIMENTAL
- default n
- ---help---
- The BFQ I/O scheduler tries to distribute bandwidth among
- all processes according to their weights.
- It aims at distributing the bandwidth as desired, independently of
- the disk parameters and with any workload. It also tries to
- guarantee low latency to interactive and soft real-time
- applications. If compiled built-in (saying Y here), BFQ can
- be configured to support hierarchical scheduling.
- config CGROUP_BFQIO
- bool "BFQ hierarchical scheduling support"
- depends on CGROUPS && IOSCHED_BFQ=y
- default n
- ---help---
- Enable hierarchical scheduling in BFQ, using the cgroups
- filesystem interface. The name of the subsystem will be
- bfqio.
- 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_ROW
- bool "ROW" if IOSCHED_ROW=y
- help
- The ROW I/O scheduler gives priority to READ requests
- over the WRITE requests when dispatching, without starving
- WRITE requests. Requests are kept in priority queues.
- Dispatching is done in a RR manner when the dispatch quantum
- for each queue is defined according to queue priority.
- Most suitable for mobile devices.
- config DEFAULT_CFQ
- bool "CFQ" if IOSCHED_CFQ=y
- config DEFAULT_BFQ
- bool "BFQ" if IOSCHED_BFQ=y
- help
- Selects BFQ as the default I/O scheduler which will be
- used by default for all block devices.
- The BFQ I/O scheduler aims at distributing the bandwidth
- as desired, independently of the disk parameters and with
- any workload. It also tries to guarantee low latency to
- interactive and soft real-time applications.
- config DEFAULT_NOOP
- bool "No-op"
- endchoice
- config DEFAULT_IOSCHED
- string
- default "deadline" if DEFAULT_DEADLINE
- default "row" if DEFAULT_ROW
- default "cfq" if DEFAULT_CFQ
- default "bfq" if DEFAULT_BFQ
- default "noop" if DEFAULT_NOOP
- endmenu
- endif
|