Re: [PATCH] block: throttle: charge io re-submission for iops limit

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




Ming Lei wrote on 2022/1/7 11:52:
> On Thu, Jan 06, 2022 at 03:46:54PM +0800, brookxu wrote:
>> Hi Ming:
>>
>> I think it may be due to other reasons, I test this patch seems work fine,
>> Can you verify it in your environment?
> 
> Your patch can't cover the issue Ning Li reported.
> 
>>
>>
>> From 2c7305042e71d0f53ca50a8a3f2eebe6a2dcdb86 Mon Sep 17 00:00:00 2001
>> From: Chunguang Xu <brookxu@xxxxxxxxxxx>
>> Date: Thu, 6 Jan 2022 15:18:50 +0800
>> Subject: [PATCH] blk-throtl: avoid double charge of bio IOPS due to split
>>
>> After commit 900e08075202("block: move queue enter logic into
>> blk_mq_submit_bio()"), submit_bio_checks() is moved from the
>> entrance of the IO stack to the specific submit_bio() entrance.
>> Therefore, the IO may be splited before entering blk-throtl, so
>> we need to check whether the BIO is throttled, and only need
>> to update the io_split_cnt for the throttled bio to avoid
>> double charge.
> 
> Actually since commit 900e08075202, your commit 4f1e9630afe6
> ("blk-throtl: optimize IOPS throttle for large IO scenarios") doesn't
> need any more, because split bio is always sent to submit_bio_checks().

This patch should still be necessary for those devices whose IO needs to go
through __submit_bio_fops(). If the IO is split after submit_bio_checks(), 
the cloned IO will be marked with BIO_THROTTLED and will not be charged again
when resubmitted.
> But I don't think that way is reasonable, especially precise driver tag
> and request is consumed by each throttling, so the following patch is posted:

Right.

> 
> https://lore.kernel.org/linux-block/20220104134223.590803-1-ming.lei@xxxxxxxxxx/T/#u
> 
> 
> Thanks,
> Ming
> 



[Index of Archives]     [Linux RAID]     [Linux SCSI]     [Linux ATA RAID]     [IDE]     [Linux Wireless]     [Linux Kernel]     [ATH6KL]     [Linux Bluetooth]     [Linux Netdev]     [Kernel Newbies]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Device Mapper]

  Powered by Linux