On 23/03/2022 02:57, Bart Van Assche wrote:
On 3/22/22 03:39, John Garry wrote:
Add an API to allocate a request queue which accepts a custom set of
blk_mq_ops for that request queue.
The reason which we may want custom ops is for queuing requests which we
don't want to go through the normal queuing path.
Hi Bart,
> Custom ops shouldn't be required for this. See e.g. how tmf_queue
> is used in the UFS driver for an example of a queue implementation
> with custom operations and that does not require changes of the block
> layer core.
The UFS code uses a private tagset (in ufs_hba.tmf_tag_set) for only
management of TMF tags/memories. This tagset does not really have any
custom operations. All it has is a stub of .queue_rq CB in
ufshcd_queue_tmf() and that is because this CB is compulsory.
As for the idea of having multiple tagsets per shost with real custom
operations, this idea was mentioned before, but I think managing
multiple tagsets could be trouble. For a start, it would mean that we
need a distinct allocation of reserved and regular tags, and sometimes
we don't want this - as Hannes mentioned earlier, many HBAs have low
queue depth and cannot afford to permanently carve out a bunch of
reserved tags.
Thanks,
John