blk-throttle: track read and write request individually
authorJoseph Qi <qijiang.qj@alibaba-inc.com>
Tue, 21 Nov 2017 01:38:30 +0000 (09:38 +0800)
committerJens Axboe <axboe@kernel.dk>
Fri, 19 Jan 2018 02:51:08 +0000 (19:51 -0700)
commitb889bf66d001a46a95deef18ddbe6db84645ed24
treef3739a244b423ccbfb4702f0a5218edca32252f4
parenta13553c777375009584741e7d9982e775c4b0744
blk-throttle: track read and write request individually

In mixed read/write workload on SSD, write latency is much lower than
read. But now we only track and record read latency and then use it as
threshold base for both read and write io latency accounting. As a
result, write io latency will always be considered as good and
bad_bio_cnt is much smaller than 20% of bio_cnt. That is to mean, the
tg to be checked will be treated as idle most of the time and still let
others dispatch more ios, even it is truly running under low limit and
wants its low limit to be guaranteed, which is not we expected in fact.
So track read and write request individually, which can bring more
precise latency control for low limit idle detection.

Signed-off-by: Joseph Qi <qijiang.qj@alibaba-inc.com>
Reviewed-by: Shaohua Li <shli@fb.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
block/blk-throttle.c