On 12/5/18 10:45 PM, Kashyap Desai wrote:
>>
>> If the 'tag' passed to scsi_host_find_tag() is valid, I think there
>> shouldn't have such issue.
>>
>> If you want to find outstanding IOs, maybe you can try
>> blk_mq_queue_tag_busy_iter()
>> or blk_mq_tagset_busy_iter(), because you may not know if the passed
> 'tag'
>> to
>> scsi_host_find_tag() is valid or not.
> 
> We tried quick change in mpt3sas driver using blk_mq_tagset_busy_iter and
> it returns/callback for valid requests (no stale entries are returned).
> Expected.
> Above two APIs are only for blk-mq.  What about non-mq case ? Driver
> should use scsi_host_find_tag for non-mq and blk_mq_tagset_busy_iter for
> blk-mq case ?
> I don't see that will be good interface. Also, blk_mq_tagset_busy_iter API
> does not provide control if driver wants to quit in-between or do some
> retry logic etc.
> 
> Why can't we add single API which provides the correct output.

>From 4.21 and forward, there will only be blk/scsi-mq. This is exactly
the problem with having to maintain two stacks, it's a huge pain.

-- 
Jens Axboe

Reply via email to