Re: Questions about your scsi-mq prototype

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

 



On Tue, 2013-07-16 at 10:39 -0700, Nicholas A. Bellinger wrote:
> On Mon, 2013-07-15 at 16:41 -0500, scameron@xxxxxxxxxxxxxxxxxx wrote:
> > Hi,
> > 
> > I have some questions about your scsi-mq prototype.  I have
> > CC'ed Chayan Biswas from Sandisk who is the other guy working
> > with me on the scsi-over-pcie driver.  BTW, if you would prefer
> > I CC linux-kernel or linux-scsi or other people with such
> > questions (or refrain from bothering you at all) just let me know.
> > 
> 
> Thanks for asking.  Adding CC's to linux-scsi + Jens now..
> 
> > I wonder if you can provide a summary of how you envision
> > a scsi LLD is expected to interact with the scsi-mq code.  I
> > gather that:
> > 
> > 1. scsi_mq in scsi_host_template should be set to true.
> 
> Correct.
> 
> > 2. scsi LLD should provide queuecommand_mq function
> >    (in addition to normal queuecommand? or instead of?
> >     virtio_scsi.c seems to provide both.)
> 
> In addition to for the moment, correct.
> 
> > 3. LLD should tell scsi mid layer size of its commands via
> >    scsi_host_template cmd_size field.
> >    I guess midlayer will pre-allocate per queue to avoid 
> >    the midlayer threads contending to allocate commands maybe?
> >    and hands this space to LLD to use via sc->SCp.ptr (sc is struct scsi_cmnd)
> >    (right? or am I off in the weeds here?)
> 
> This is all exactly correct.
> 
> The one extra point here wrt ->queuecommand_mq() is that it's using the
> same parameters for the moment, but once nr_hw_queues > 1 is
> implemented, we will expect to pass down the associated blk_mq_hw_ctx in
> order for the LLD to determine which hardware context the struct
> scsi_cmnd is being dispatched upon.
> 
> > 4. Wondering about how the multiple queue thing will work.
> >    I see this:
> > 
> >    #warning FIXME: Need to pass nr_hw_queues into scsi-mq
> > 
> >    and I don't see any code setting sdev_mq_reg.nr_hw_queues to
> >    anything other than 1.
> > 
> >    So maybe I'm just looking too early and that part isn't done yet?
> > 
> 
> Correct, not done yet..
> 
> However, so far with a single SCSI LUN with nr_hw_queues=1, 4k blocksize
> randrw performance is on the order of 1M, vs. ~250K using legacy
> scsi_request_fn().
> 
> > In any case, since we switched away from a scsi driver for the scsi-over-pcie
> > driver to a block driver, the original scsi version of the driver has lain
> > fallow, and the first thing we would need to do before we could begin to try
> > to use your code is to update that driver to work with our current hardware, and
> > take advantage of other code improvements made in the block driver.
> > 
> 

Hi Stephen & Robert,

Just curious if you've been able to make any progress here..?

Also as per our earlier off-list discussion, you should be able to
safely run existing scsi_request_fn() based LLDs along side new
SHT->scsi_mq=true enabled code for prototyping purposes. 

Btw, any chance to get an SOP sample to hack on..?  I'd like to connect
one of these to IvyBridge-EP silicon for various scsi-mq and target mode
performance testing.  ;)

Thank you,

--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