On 04/04/2017 05:59 PM, Ming Lei wrote:
On Tue, Apr 4, 2017 at 8:07 PM, Hannes Reinecke <h...@suse.de> wrote:
Hi all,
as discussed recently most existing HBAs have a host-wide tagset which
does not map easily onto the per-queue tagset model of block mq.
This patchset implements a flag BLK_MQ_F_GLOBAL_TAGS for block-mq, which
enables the use of a shared tagset for all hardware queues.
The second patch adds a flag 'host_tagset' to the SCSI host template,
which allows drivers to enable the use of the global tagset.
This patchset probably has some performance implications as
there is a quite high probability of cache-bouncing when allocating
tags. Also I'm not quite sure if the implemented tagset sharing
is the correct way to handle things.
So this can be considered an RFC.
As usual, comments and reviews are welcome.
Just be curious, why is multi hard queue used for this case? Are there
some real cases in SCSI?
Yes.
This is required by basically every driver in drivers/scsi which would
in theory be able to support scsi-mq (ie lpfc, qla2xxx, mpt3sas, and
possibly fnic). Each of them support several submission/completion
queues, but every one of them has a host-wide tag map, too.
Cheers,
Hannes
--
Dr. Hannes Reinecke zSeries & Storage
h...@suse.de +49 911 74053 688
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg
GF: J. Hawn, J. Guild, F. Imendörffer, HRB 16746 (AG Nürnberg)