| 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" |
| # 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_CFQ |
| bool "CFQ" if IOSCHED_CFQ=y |
| |
| config DEFAULT_NOOP |
| bool "No-op" |
| |
| endchoice |
| |
| config DEFAULT_IOSCHED |
| string |
| default "deadline" if DEFAULT_DEADLINE |
| default "cfq" if DEFAULT_CFQ |
| default "noop" if DEFAULT_NOOP |
| |
| endmenu |
| |
| endif |