Thread (9 messages) 9 messages, 2 authors, 2021-07-28

Re: [PATCH] blk-throtl: optimize IOPS throttle for large IO scenarios

From: brookxu <hidden>
Date: 2021-07-28 02:33:33
Also in: linux-block, lkml

Thanks for your time.

Tejun Heo wrote on 2021/7/28 12:21 上午:
Hello,

On Tue, Jul 27, 2021 at 11:06:18AM +0800, brookxu wrote:
quoted
Make blk-throttle use rq-qos may be more elegant. But I found that there may be at least
one problem that is difficult to solve. blk-throttle supports separate throttle for read
and write IOs, which means that we cannot suspend tasks during throttle, but rq-qos
throttle IOs by suspending tasks.
Ah, right, I forgot about that.
quoted
We may be able to relocate the blk-throttle hooks to the rq-qos hooks. Since we may not
be able to replace the throttle hook, in this case, if we register a rq-qos to the system,
part of the blk-throttle hooks is in rq-qos and part hooks not, which feels a bit confusing.
In addition, we may need to implement more hooks, such as IO merge hook.
Would it be possible to just move the blk-throtl throttling hook right next
to the rq-qos hook so that it gets throttled after splitting?
If we do this, I think we will encounter some problems, as follows:
1. blk-throttle is now at the top of the IO stack. Changing the position of the throttle hook
   will make this mechanism invalid for some devices.
2. We may also need to add a new hook to handle back-merge, otherwise I think the isolation
   effect will be worse in the sequential IO scene.
3. Since bio has entered the IO stack, if it is suspended and resubmitted by blk-throttle,
   then there is an IO stack reentry problem, which I think may cause many small problems.
Thanks.
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help