212 lines
5.9 KiB
Plaintext
212 lines
5.9 KiB
Plaintext
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.
|
|
|
|
config IOSCHED_FIFO
|
|
bool
|
|
default n
|
|
---help---
|
|
Fifo is similar to no-op I/O scheduler and it's a minimal scheduler that does basic merging
|
|
and sorting. Ported from: https://github.com/AndroidDeveloperAlliance/ZenKernel_TUNA/blob/master/block/fifo-iosched.c
|
|
|
|
config IOSCHED_FIOPS
|
|
tristate "IOPS based I/O scheduler"
|
|
default n
|
|
---help---
|
|
This is an IOPS based I/O scheduler. It will try to distribute
|
|
IOPS equally among all processes in the system. It's mainly for
|
|
Flash based storage.
|
|
|
|
config IOSCHED_SIO
|
|
tristate "Simple I/O scheduler"
|
|
default n
|
|
---help---
|
|
The Simple I/O scheduler is an extremely simple scheduler,
|
|
based on noop and deadline, that relies on deadlines to
|
|
ensure fairness. The algorithm does not do any sorting but
|
|
basic merging, trying to keep a minimum overhead. It is aimed
|
|
mainly for aleatory access devices (eg: flash devices).
|
|
|
|
config IOSCHED_SIOPLUS
|
|
tristate "Simple I/O scheduler plus"
|
|
default n
|
|
---help---
|
|
The Simple I/O scheduler is an extremely simple scheduler,
|
|
based on noop and deadline, that relies on deadlines to
|
|
ensure fairness. The algorithm does not do any sorting but
|
|
basic merging, trying to keep a minimum overhead. It is aimed
|
|
mainly for aleatory access devices (eg: flash devices).
|
|
|
|
config IOSCHED_TRIPNDROID
|
|
tristate "Tripndroid"
|
|
default n
|
|
---help---
|
|
The Trip N Droid scheduler
|
|
|
|
config IOSCHED_VR
|
|
tristate "V(R) I/O scheduler"
|
|
default n
|
|
---help---
|
|
Requests are chosen according to SSTF with a penalty of rev_penalty
|
|
for switching head direction.
|
|
|
|
config IOSCHED_ZEN
|
|
tristate "Zen I/O scheduler"
|
|
default n
|
|
---help---
|
|
FCFS, dispatches are back-inserted, deadlines ensure fairness.
|
|
Should work best with devices where there is no travel delay.
|
|
|
|
config IOSCHED_ROW
|
|
tristate "ROW I/O scheduler"
|
|
default n
|
|
---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_BFQ
|
|
tristate "BFQ I/O scheduler"
|
|
default n
|
|
---help---
|
|
The BFQ I/O scheduler distributes bandwidth 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 IOSCHED_MAPLE
|
|
tristate "Maple I/O scheduler"
|
|
default n
|
|
|
|
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.
|
|
|
|
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_FIFO
|
|
bool "fifo" if IOSCHED_FIFO=y
|
|
|
|
config DEFAULT_FIOPS
|
|
bool "FIOPS" if IOSCHED_FIOPS=y
|
|
|
|
config DEFAULT_NOOP
|
|
bool "No-op"
|
|
|
|
config DEFAULT_SIO
|
|
bool "SIO" if IOSCHED_SIO=y
|
|
|
|
config DEFAULT_SIOPLUS
|
|
bool "SIOPLUS" if IOSCHED_SIOPLUS=y
|
|
|
|
config DEFAULT_TRIPNDROID
|
|
bool "TRIPNDROID" if IOSCHED_TRIPNDROID=y
|
|
|
|
config DEFAULT_VR
|
|
bool "V(R)" if IOSCHED_VR=y
|
|
|
|
config DEFAULT_ZEN
|
|
bool "ZEN" if IOSCHED_ZEN=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_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_MAPLE
|
|
bool "Maple" if IOSCHED_MAPLE=y
|
|
|
|
endchoice
|
|
|
|
config DEFAULT_IOSCHED
|
|
string
|
|
default "deadline" if DEFAULT_DEADLINE
|
|
default "cfq" if DEFAULT_CFQ
|
|
default "noop" if DEFAULT_NOOP
|
|
default "fifo" if DEFAULT_FIFO
|
|
default "fiops" if DEFAULT_FIOPS
|
|
default "sio" if DEFAULT_SIO
|
|
default "sioplus" if DEFAULT_SIOPLUS
|
|
default "tripndroid" if DEFAULT_TRIPNDROID
|
|
default "vr" if DEFAULT_VR
|
|
default "zen" if DEFAULT_ZEN
|
|
default "row" if DEFAULT_ROW
|
|
default "bfq" if DEFAULT_BFQ
|
|
default "maple" if DEFAULT_MAPLE
|
|
|
|
endmenu
|
|
|
|
endif
|