Re: [RFC PATCH] blk-mq: implement queue quiesce via percpu_ref for BLK_MQ_F_BLOCKING

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

 



On 7/30/20 1:27 PM, Keith Busch wrote:
> On Thu, Jul 30, 2020 at 11:23:58AM -0700, Sagi Grimberg wrote:
>>
>>>>>> I think it will be a significant improvement to have a single code path.
>>>>>> The code will be more robust and we won't need to face issues that are
>>>>>> specific for blocking.
>>>>>>
>>>>>> If the cost is negligible, I think the upside is worth it.
>>>>>>
>>>>>
>>>>> rcu_read_lock and rcu_read_unlock has been proved as efficient enough,
>>>>> and I don't think percpu_refcount is better than it, so I'd suggest to
>>>>> not switch non-blocking into this way.
>>>>
>>>> It's not a matter of which is better, its a matter of making the code
>>>> more robust because it has a single code-path. If moving to percpu_ref
>>>> is negligible, I would suggest to move both, I don't want to have two
>>>> completely different mechanism for blocking vs. non-blocking.
>>>
>>> FWIW, I proposed an hctx percpu_ref over a year ago (but for a
>>> completely different reason), and it was measured as too costly.
>>>
>>>    https://lore.kernel.org/linux-block/d4a4b6c0-3ea8-f748-85b0-6b39c5023a6f@xxxxxxxxx/
>>
>> If this is the case, we shouldn't consider this as an alternative at all,
>> and move forward with either the original proposal or what
>> ming proposed to move a counter to the tagset.
> 
> Well, the point I was trying to make is that we shouldn't bother making
> blocking and non-blocking dispatchers use the same synchronization since
> non-blocking has a very cheap solution that blocking can't use.

I fully agree with that point.

-- 
Jens Axboe




[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