RE: [PATCH v2 10/12] IB/srp: Use block layer tags

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

 



> -----Original Message-----
> From: linux-scsi-owner@xxxxxxxxxxxxxxx [mailto:linux-scsi-
> owner@xxxxxxxxxxxxxxx] On Behalf Of Christoph Hellwig
> Sent: Friday, October 24, 2014 12:15 PM
> To: Elliott, Robert (Server Storage)
> Cc: Bart Van Assche; Jens Axboe; Sagi Grimberg; Sebastian Parschauer;
Ming
> Lei; linux-scsi@xxxxxxxxxxxxxxx; linux-rdma; Scales, Webb; Don Brace
(PMC)
> Subject: Re: [PATCH v2 10/12] IB/srp: Use block layer tags
>
> On Fri, Oct 24, 2014 at 04:43:15AM +0000, Elliott, Robert (Server
Storage)
> wrote:
> > However, it was looking at scmd->tag, which is always 0xff (at least
> > in those early discovery commands).  scmd->request->tag looks like it
> > is the field that has the correct values.
> >
> > Also, I noticed that scmd->tag is just an 8 bit field, so it could
> > never represent a large number of tags.
>
> Yes, we need to get rid of scmd->tag.  Hannes had a patchset to get
started
> on it, and I hope either he or someone else will have time to get back
to it
> ASAP.
>
> > Just to confirm: After calling scsi_init_shared_tag_map() in non-mq
> > mode, will scmd->request->tag be based on controller-wide tag
> > allocation (never using the same value at the same time for the
> > request queues of multiple devices in that controller)?
>
> Yes.

Hi Everyone, I am doing similar code changes for megaraid_sas driver. I
found this thread more suitable to get help from you...

I also noticed that after using scsi_init_shared_tag_map() in driver, tags
are coming controller wide.
And that is a good for megaraid_sas driver to get-rid-off internal command
pool list and start using block layer tags.

As explained by Robert,
I also used below setting in slave_alloc(), so that first Inquiry command
received by driver also has valid Tag in (Non-MQ mode).
	sdev->tagged_supported = 1
Without above setting Inquiry command comes with 0xFF. If I see below code
in scsi_scan.c, it looks like tagged_supported value should be popped by
after actual value reported from Inquiry command.

        if ((sdev->scsi_level >= SCSI_2) && (inq_result[7] & 2) &&
            !(*bflags & BLIST_NOTQ))
                sdev->tagged_supported = 1;

Does it means what driver set in slave_alloc is OK to get Inquiry commands
with valid Tag  ?
What will happen if Target really does not support Tagged command queue
and driver overwrite it in slave_alloc ?

Thanks, Kashyap

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