Re: scsi-mq prototype

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

 



On Fri, 2013-11-29 at 15:08 +0100, Bart Van Assche wrote:
> On 07/12/13 02:23, Nicholas A. Bellinger wrote:
> > [ ... ] I would like to discuss scsi-mq, a high performance SCSI
> > initiator prototype that utilizes blk-mq [ ... ]
> 
> (replying to an e-mail of four months ago)
> 
> It took a while but I finally found some time to look further into
> blk-mq and scsi-mq. Did I see correctly that the scsi-mq prototype
> implements the so-called hw queues in the SCSI core and not in the SCSI
> LLDs ?

No.  The hw queues are coming from blk-mq, and there is no extra queues
implemented by scsi-mq.

>  Sorry but that approach looks wrong to me. Several high-end
> storage adapters already support multiple queues today. E.g. the NVMe
> specification supports up to 64.000 I/O queues. With InfiniBand HCA's it
> is possible to create multiple queues between initiator and target for
> e.g. the iSER and SRP protocols to increase throughput. When there are
> multiple queues between initiator and target there is a potential that
> SCSI commands get reordered. The SCSI specifications define whether or
> not it is allowed to change the submission order of commands. As an
> example, if two atomic writes are submitted by the same CPU neither the
> block layer nor the SCSI core nor the SCSI LLD nor the SCSI target is
> allowed to reorder these. With the scsi-mq prototype present in your
> repo the only way for a SCSI LLD to guarantee that SCSI commands for
> which the submission order must be preserved do not get reordered is
> either to limit the queue depth to one or to use a single queue for
> communication with the target. I don't think this is what we want.
> 

In case you haven't already noticed, all of the scsi-mq logic is running
with nr_hw_queues=1, which by itself gives a huge performance + latency
improvement vs. existing scsi_request_fn() based logic.

Frankly, getting this to work properly for all cases is currently higher
on my priority list than enabling nr_hw_queues > 1.

> In other words, the so-called hw queue concept must be mapped onto
> queues managed by the SCSI LLD and not onto queues managed by the SCSI
> core. That will allow the block layer and the SCSI core to preserve SCSI
> command submission order when necessary by queueing ordered commands on
> the same hardware queue.
> 

Perhaps once nr_hw_queues > 1 logic is enabled in scsi-mq, you can send
a patch series to address your concerns.

Without patches, your observations aren't particular helpful.

--nab

--
To unsubscribe from this list: send the line "unsubscribe linux-scsi" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [SCSI Target Devel]     [Linux SCSI Target Infrastructure]     [Kernel Newbies]     [IDE]     [Security]     [Git]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux ATA RAID]     [Linux IIO]     [Samba]     [Device Mapper]
  Powered by Linux