
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_AS
	tristate "Anticipatory I/O scheduler"
	default y
	---help---
	  The anticipatory I/O scheduler is the default disk scheduler. It is
	  generally a good choice for most environments, but is quite large and
	  complex when compared to the deadline I/O scheduler, it can also be
	  slower in some cases especially some database loads.

config IOSCHED_DEADLINE
	tristate "Deadline I/O scheduler"
	default y
	---help---
	  The deadline I/O scheduler is simple and compact, and is often as
	  good as the anticipatory I/O scheduler, and in some database
	  workloads, better. In the case of a single process performing I/O to
	  a disk at any one time, its behaviour is almost identical to the
	  anticipatory I/O scheduler and so is a good choice.

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
	  working environment, suitable for desktop systems.

choice
	prompt "Default I/O scheduler"
	default DEFAULT_AS
	help
	  Select the I/O scheduler which will be used by default for all
	  block devices.

	config DEFAULT_AS
		bool "Anticipatory" if IOSCHED_AS=y

	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 "anticipatory" if DEFAULT_AS
	default "deadline" if DEFAULT_DEADLINE
	default "cfq" if DEFAULT_CFQ
	default "noop" if DEFAULT_NOOP

endmenu
