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