[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <378065de-3cb8-b44f-66e9-747960bcd990@huawei.com>
Date: Wed, 23 Mar 2022 09:01:33 +0000
From: John Garry <john.garry@...wei.com>
To: Bart Van Assche <bvanassche@....org>, <axboe@...nel.dk>,
<damien.lemoal@...nsource.wdc.com>, <jejb@...ux.ibm.com>,
<martin.petersen@...cle.com>, <hch@....de>, <ming.lei@...hat.com>,
<hare@...e.de>
CC: <chenxiang66@...ilicon.com>, <linux-block@...r.kernel.org>,
<linux-kernel@...r.kernel.org>, <linux-ide@...r.kernel.org>,
<linux-scsi@...r.kernel.org>, <dm-devel@...hat.com>,
<beanhuo@...ron.com>
Subject: Re: [PATCH 01/11] blk-mq: Add blk_mq_init_queue_ops()
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
Powered by blists - more mailing lists