On 4/13/20 10:27 AM, Tejun Heo wrote: > Changes from v1[1] > > * Dropped 0002-block-add-request-io_data_len.patch and updated to use > rq->stats_sectors instead as suggested by Pavel Begunkov. > > This patchset improves the following two iocost control behaviors. > > * iocost was failing to punish heavy shared IO generators (file metadata, memory > reclaim) through use_delay mechanism - use_delay automatically decays which > works well for iolatency but doesn't match how iocost behaves. This led to > e.g. memory bombs which generate a lot of swap IOs to use over their allotted > amount. This is fixed by adding non-decaying use_delay mechanism. > > * The same latency targets were being applied regardless of the IO sizes. While > this works fine for loose targets, it gets in the way when trying to tigthen > them - a latency target adequate for a 4k IO is too short for a 1 meg IO. > iocost now discounts the size portion of cost when testing whether a given IO > met or missed its latency target. > > While at it, it also makes minor changse to iocost_monitor.py. > > This patchset contains the following five patches. > > 0001-blk-iocost-switch-to-fixed-non-auto-decaying-use_del.patch > 0002-blk-iocost-account-for-IO-size-when-testing-latencie.patch > 0003-iocost_monitor-exit-successfully-if-interval-is-zero.patch > 0004-iocost_monitor-drop-string-wrap-around-numbers-when-.patch > > and is also available in the following git branch. > > git://git.kernel.org/pub/scm/linux/kernel/git/tj/cgroup.git iocost-delay-latency-v2 > > diffstat follows. Thanks. > > block/Kconfig | 1 > block/blk-cgroup.c | 6 ++++ > block/blk-iocost.c | 56 +++++++++++++++++++++++++++++------------ > include/linux/blk-cgroup.h | 43 ++++++++++++++++++++++++------- > tools/cgroup/iocost_monitor.py | 48 +++++++++++++++++++---------------- > 5 files changed, 106 insertions(+), 48 deletions(-) Applied, thanks Tejun. -- Jens Axboe