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. 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_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 "noop" if DEFAULT_NOOP endmenu endif