summaryrefslogtreecommitdiffstats
path: root/block/Kconfig
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2020-04-13 12:27:56 -0400
committerJens Axboe <axboe@kernel.dk>2020-04-30 15:54:45 -0600
commitcd006509b0a93cb7ee9d9fd50ae274098997a460 (patch)
tree1d3ab04a30ff6ac0f133195d9612702e5d77a881 /block/Kconfig
parent54c52e10dc9b939084a7e6e3d32ce8fd8dee7898 (diff)
downloadlinux-stable-cd006509b0a93cb7ee9d9fd50ae274098997a460.tar.gz
linux-stable-cd006509b0a93cb7ee9d9fd50ae274098997a460.tar.bz2
linux-stable-cd006509b0a93cb7ee9d9fd50ae274098997a460.zip
blk-iocost: account for IO size when testing latencies
On each IO completion, iocost decides whether the IO met or missed its latency target. Currently, the targets are fixed numbers per IO type. While this can be good enough for loose latency targets way higher than typical completion latencies, the effect of IO size makes it difficult to tighten the latency target - a target adequate for 4k IOs might be too tight for 512k IOs and vice-versa. iocost already has all the necessary information to account for different IO sizes when testing whether the latency target is met as iocost can calculate the size vtime cost of a given IO. This patch updates the completion path to calculate the size vtime cost of the IO, deduct the nsec equivalent from the observed latency and use the adjusted value to decide whether the target is met. This makes latency targets independent from IO size and enables determining adequate latency targets with fixed size fio runs. Signed-off-by: Tejun Heo <tj@kernel.org> Cc: Andy Newell <newella@fb.com> Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'block/Kconfig')
-rw-r--r--block/Kconfig1
1 files changed, 1 insertions, 0 deletions
diff --git a/block/Kconfig b/block/Kconfig
index 3bc76bb113a0..41cb34b0fcd1 100644
--- a/block/Kconfig
+++ b/block/Kconfig
@@ -146,6 +146,7 @@ config BLK_CGROUP_IOLATENCY
config BLK_CGROUP_IOCOST
bool "Enable support for cost model based cgroup IO controller"
depends on BLK_CGROUP=y
+ select BLK_RQ_IO_DATA_LEN
select BLK_RQ_ALLOC_TIME
---help---
Enabling this option enables the .weight interface for cost