Kconfig.iosched 2.7 KB
Newer Older
1
if BLOCK
L
Linus Torvalds 已提交
2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

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---
19 20 21 22
	  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.
L
Linus Torvalds 已提交
23 24 25 26 27 28 29

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
30 31 32
	  and low latency working environment, suitable for both desktop
	  and server systems.

33
	  This is the default I/O scheduler.
L
Linus Torvalds 已提交
34

35 36
config CFQ_GROUP_IOSCHED
	bool "CFQ Group Scheduling support"
37
	depends on IOSCHED_CFQ && BLK_CGROUP
38 39 40 41
	default n
	---help---
	  Enable group IO scheduling in CFQ.

42 43
choice
	prompt "Default I/O scheduler"
44
	default DEFAULT_CFQ
45 46 47 48 49
	help
	  Select the I/O scheduler which will be used by default for all
	  block devices.

	config DEFAULT_DEADLINE
50
		bool "Deadline" if IOSCHED_DEADLINE=y
51 52

	config DEFAULT_CFQ
53
		bool "CFQ" if IOSCHED_CFQ=y
54 55 56 57 58 59 60 61 62 63 64 65

	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

66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115
config MQ_IOSCHED_DEADLINE
	tristate "MQ deadline I/O scheduler"
	default y
	---help---
	  MQ version of the deadline IO scheduler.

config MQ_IOSCHED_NONE
	bool
	default y

choice
	prompt "Default single-queue blk-mq I/O scheduler"
	default DEFAULT_SQ_NONE
	help
	  Select the I/O scheduler which will be used by default for blk-mq
	  managed block devices with a single queue.

	config DEFAULT_SQ_DEADLINE
		bool "MQ Deadline" if MQ_IOSCHED_DEADLINE=y

	config DEFAULT_SQ_NONE
		bool "None"

endchoice

config DEFAULT_SQ_IOSCHED
	string
	default "mq-deadline" if DEFAULT_SQ_DEADLINE
	default "none" if DEFAULT_SQ_NONE

choice
	prompt "Default multi-queue blk-mq I/O scheduler"
	default DEFAULT_MQ_NONE
	help
	  Select the I/O scheduler which will be used by default for blk-mq
	  managed block devices with multiple queues.

	config DEFAULT_MQ_DEADLINE
		bool "MQ Deadline" if MQ_IOSCHED_DEADLINE=y

	config DEFAULT_MQ_NONE
		bool "None"

endchoice

config DEFAULT_MQ_IOSCHED
	string
	default "mq-deadline" if DEFAULT_MQ_DEADLINE
	default "none" if DEFAULT_MQ_NONE

L
Linus Torvalds 已提交
116
endmenu
117 118

endif