xref: /linux/block/Kconfig.iosched (revision f9cd49033b349b8be3bb1f01b39eed837853d880)
19361401eSDavid Howellsif BLOCK
21da177e4SLinus Torvalds
31da177e4SLinus Torvaldsmenu "IO Schedulers"
41da177e4SLinus Torvalds
51da177e4SLinus Torvaldsconfig IOSCHED_NOOP
61da177e4SLinus Torvalds	bool
71da177e4SLinus Torvalds	default y
81da177e4SLinus Torvalds	---help---
91da177e4SLinus Torvalds	  The no-op I/O scheduler is a minimal scheduler that does basic merging
101da177e4SLinus Torvalds	  and sorting. Its main uses include non-disk based block devices like
111da177e4SLinus Torvalds	  memory devices, and specialised software or hardware environments
121da177e4SLinus Torvalds	  that do their own scheduling and require only minimal assistance from
131da177e4SLinus Torvalds	  the kernel.
141da177e4SLinus Torvalds
151da177e4SLinus Torvaldsconfig IOSCHED_DEADLINE
161da177e4SLinus Torvalds	tristate "Deadline I/O scheduler"
171da177e4SLinus Torvalds	default y
181da177e4SLinus Torvalds	---help---
19492af635SJens Axboe	  The deadline I/O scheduler is simple and compact. It will provide
20492af635SJens Axboe	  CSCAN service with FIFO expiration of requests, switching to
21492af635SJens Axboe	  a new point in the service tree and doing a batch of IO from there
22492af635SJens Axboe	  in case of expiry.
231da177e4SLinus Torvalds
241da177e4SLinus Torvaldsconfig IOSCHED_CFQ
251da177e4SLinus Torvalds	tristate "CFQ I/O scheduler"
261da177e4SLinus Torvalds	default y
271da177e4SLinus Torvalds	---help---
281da177e4SLinus Torvalds	  The CFQ I/O scheduler tries to distribute bandwidth equally
291da177e4SLinus Torvalds	  among all processes in the system. It should provide a fair
3008dc8726SJens Axboe	  and low latency working environment, suitable for both desktop
3108dc8726SJens Axboe	  and server systems.
3208dc8726SJens Axboe
33a8e14b95SJesper Juhl	  This is the default I/O scheduler.
341da177e4SLinus Torvalds
3525bc6b07SVivek Goyalconfig CFQ_GROUP_IOSCHED
3625bc6b07SVivek Goyal	bool "CFQ Group Scheduling support"
37*afc24d49SVivek Goyal	depends on IOSCHED_CFQ && BLK_CGROUP
3825bc6b07SVivek Goyal	default n
3925bc6b07SVivek Goyal	---help---
4025bc6b07SVivek Goyal	  Enable group IO scheduling in CFQ.
4125bc6b07SVivek Goyal
42131dda7fSNate Dillerchoice
43131dda7fSNate Diller	prompt "Default I/O scheduler"
44b17fd9bcSJens Axboe	default DEFAULT_CFQ
45131dda7fSNate Diller	help
46131dda7fSNate Diller	  Select the I/O scheduler which will be used by default for all
47131dda7fSNate Diller	  block devices.
48131dda7fSNate Diller
49131dda7fSNate Diller	config DEFAULT_DEADLINE
50c6ea2ba7SJens Axboe		bool "Deadline" if IOSCHED_DEADLINE=y
51131dda7fSNate Diller
52131dda7fSNate Diller	config DEFAULT_CFQ
53c6ea2ba7SJens Axboe		bool "CFQ" if IOSCHED_CFQ=y
54131dda7fSNate Diller
55131dda7fSNate Diller	config DEFAULT_NOOP
56131dda7fSNate Diller		bool "No-op"
57131dda7fSNate Diller
58131dda7fSNate Dillerendchoice
59131dda7fSNate Diller
60131dda7fSNate Dillerconfig DEFAULT_IOSCHED
61131dda7fSNate Diller	string
62131dda7fSNate Diller	default "deadline" if DEFAULT_DEADLINE
63131dda7fSNate Diller	default "cfq" if DEFAULT_CFQ
64131dda7fSNate Diller	default "noop" if DEFAULT_NOOP
65131dda7fSNate Diller
661da177e4SLinus Torvaldsendmenu
679361401eSDavid Howells
689361401eSDavid Howellsendif
69