android_kernel_samsung_msm8976/block/Kconfig.iosched
Arianna Avanzini 3c67a316fd block: cgroups, kconfig, build bits for BFQ-v7r8-3.10.8+
Update Kconfig.iosched and do the related Makefile changes to include
kernel configuration options for BFQ. Also add the bfqio controller
to the cgroups subsystem.

Change-Id: I41b0fe61f036d59b641205ab21902401e7a704c0
Signed-off-by: Paolo Valente <paolo.valente@unimore.it>
Signed-off-by: Arianna Avanzini <avanzini.arianna@gmail.com>
Signed-off-by: Josue Rivera <prbassplayer@gmail.com>
2017-04-18 04:37:19 +02:00

133 lines
3.9 KiB
Text

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"
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_BFQ
tristate "BFQ I/O scheduler"
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