mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-26 10:49:33 +00:00
![Vivek Goyal](/assets/img/avatar_default.png)
This patch fixes few usability and configurability issues. o All the cgroup based controller options are configurable from "Genral Setup/Control Group Support/" menu. blkio is the only exception. Hence make this option visible in above menu and make it configurable from there to bring it inline with rest of the cgroup based controllers. o Get rid of CONFIG_DEBUG_CFQ_IOSCHED. This option currently does two things. - Enable printing of cgroup paths in blktrace - Enables CONFIG_DEBUG_BLK_CGROUP, which in turn displays additional stat files in cgroup. If we are using group scheduling, blktrace data is of not really much use if cgroup information is not present. To get this data, currently one has to also enable CONFIG_DEBUG_CFQ_IOSCHED, which in turn brings the overhead of all the additional debug stat files which is not desired. Hence, this patch moves printing of cgroup paths under CONFIG_CFQ_GROUP_IOSCHED. This allows us to get rid of CONFIG_DEBUG_CFQ_IOSCHED completely. Now all the debug stat files are controlled only by CONFIG_DEBUG_BLK_CGROUP which can be enabled through config menu. Signed-off-by: Vivek Goyal <vgoyal@redhat.com> Acked-by: Divyesh Shah <dpshah@google.com> Reviewed-by: Gui Jianfeng <guijianfeng@cn.fujitsu.com> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
72 lines
1.8 KiB
Text
72 lines
1.8 KiB
Text
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
|