On Thu, Jun 23, 2022 at 08:27:11PM +0800, Yu Kuai <yukuai3@xxxxxxxxxx> wrote:Yes, nice that we're in aggreement.
Here we may allow to dispatch a bio above current slice's
calculate_bytes_allowed() if bytes_skipped is already >0.
Hi, I don't expect that to happen. For example, if a bio is still
throttled, then old slice is keeped with proper 'bytes_skipped',
then new wait time is caculated based on (bio_size - bytes_skipped).
After the bio is dispatched(I assum that other bios can't preempt),
With this assumptions it adds up as you write. I believe we're in
agreement.
It's the same assumption I made below (FIFO everywhere, i.e. no
reordering). So the discussed difference shouldn't really be negative
(and if the assumption didn't hold, so the modular arithmetic yields
corerct bytes_skipped value).
Michal
.