08a9ad8bf6
Maintain statistics per cgroup and export these to user space. These statistics are essential for verifying whether the proper I/O priorities have been assigned to requests. An example of the statistics data with this patch applied: $ cat /sys/fs/cgroup/io.stat 11:2 rbytes=0 wbytes=0 rios=3 wios=0 dbytes=0 dios=0 [NONE] dispatched=0 inserted=0 merged=171 [RT] dispatched=0 inserted=0 merged=0 [BE] dispatched=0 inserted=0 merged=0 [IDLE] dispatched=0 inserted=0 merged=0 8:32 rbytes=2142720 wbytes=0 rios=105 wios=0 dbytes=0 dios=0 [NONE] dispatched=0 inserted=0 merged=171 [RT] dispatched=0 inserted=0 merged=0 [BE] dispatched=0 inserted=0 merged=0 [IDLE] dispatched=0 inserted=0 merged=0 Cc: Damien Le Moal <damien.lemoal@wdc.com> Cc: Hannes Reinecke <hare@suse.de> Cc: Christoph Hellwig <hch@lst.de> Cc: Ming Lei <ming.lei@redhat.com> Cc: Johannes Thumshirn <johannes.thumshirn@wdc.com> Cc: Himanshu Madhani <himanshu.madhani@oracle.com> Signed-off-by: Bart Van Assche <bvanassche@acm.org> Link: https://lore.kernel.org/r/20210618004456.7280-16-bvanassche@acm.org Signed-off-by: Jens Axboe <axboe@kernel.dk>
56 lines
1.5 KiB
Plaintext
56 lines
1.5 KiB
Plaintext
# SPDX-License-Identifier: GPL-2.0
|
|
if BLOCK
|
|
|
|
menu "IO Schedulers"
|
|
|
|
config MQ_IOSCHED_DEADLINE
|
|
tristate "MQ deadline I/O scheduler"
|
|
default y
|
|
help
|
|
MQ version of the deadline IO scheduler.
|
|
|
|
config MQ_IOSCHED_DEADLINE_CGROUP
|
|
tristate
|
|
default y
|
|
depends on MQ_IOSCHED_DEADLINE
|
|
depends on BLK_CGROUP
|
|
|
|
config MQ_IOSCHED_KYBER
|
|
tristate "Kyber I/O scheduler"
|
|
default y
|
|
help
|
|
The Kyber I/O scheduler is a low-overhead scheduler suitable for
|
|
multiqueue and other fast devices. Given target latencies for reads and
|
|
synchronous writes, it will self-tune queue depths to achieve that
|
|
goal.
|
|
|
|
config IOSCHED_BFQ
|
|
tristate "BFQ I/O scheduler"
|
|
help
|
|
BFQ I/O scheduler for BLK-MQ. BFQ distributes the bandwidth of
|
|
of the device among all processes according to their weights,
|
|
regardless of the device parameters and with any workload. It
|
|
also guarantees a low latency to interactive and soft
|
|
real-time applications. Details in
|
|
Documentation/block/bfq-iosched.rst
|
|
|
|
config BFQ_GROUP_IOSCHED
|
|
bool "BFQ hierarchical scheduling support"
|
|
depends on IOSCHED_BFQ && BLK_CGROUP
|
|
select BLK_CGROUP_RWSTAT
|
|
help
|
|
|
|
Enable hierarchical scheduling in BFQ, using the blkio
|
|
(cgroups-v1) or io (cgroups-v2) controller.
|
|
|
|
config BFQ_CGROUP_DEBUG
|
|
bool "BFQ IO controller debugging"
|
|
depends on BFQ_GROUP_IOSCHED
|
|
help
|
|
Enable some debugging help. Currently it exports additional stat
|
|
files in a cgroup which can be useful for debugging.
|
|
|
|
endmenu
|
|
|
|
endif
|