[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20170712000402.GA27718@localhost.localdomain>
Date: Tue, 11 Jul 2017 20:04:02 -0400
From: Keith Busch <keith.busch@...el.com>
To: Suganath Prabu S <suganath-prabu.subramani@...adcom.com>
Cc: "JBottomley@...allels.com" <JBottomley@...allels.com>,
"jejb@...nel.org" <jejb@...nel.org>,
"hch@...radead.org" <hch@...radead.org>,
"martin.petersen@...cle.com" <martin.petersen@...cle.com>,
"linux-scsi@...r.kernel.org" <linux-scsi@...r.kernel.org>,
"Sathya.Prakash@...adcom.com" <Sathya.Prakash@...adcom.com>,
"kashyap.desai@...adcom.com" <kashyap.desai@...adcom.com>,
"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>,
"chaitra.basappa@...adcom.com" <chaitra.basappa@...adcom.com>,
"sreekanth.reddy@...adcom.com" <sreekanth.reddy@...adcom.com>,
"linux-nvme@...ts.infradead.org" <linux-nvme@...ts.infradead.org>
Subject: Re: [PATCH 02/13] mpt3sas: SGL to PRP Translation for I/Os to NVMe
devices
On Tue, Jul 11, 2017 at 01:55:02AM -0700, Suganath Prabu S wrote:
> +/**
> + * _base_check_pcie_native_sgl - This function is called for PCIe end devices to
> + * determine if the driver needs to build a native SGL. If so, that native
> + * SGL is built in the special contiguous buffers allocated especially for
> + * PCIe SGL creation. If the driver will not build a native SGL, return
> + * TRUE and a normal IEEE SGL will be built. Currently this routine
> + * supports NVMe.
> + * @ioc: per adapter object
> + * @mpi_request: mf request pointer
> + * @smid: system request message index
> + * @scmd: scsi command
> + * @pcie_device: points to the PCIe device's info
> + *
> + * Returns 0 if native SGL was built, 1 if no SGL was built
> + */
> +static int
> +_base_check_pcie_native_sgl(struct MPT3SAS_ADAPTER *ioc,
> + Mpi25SCSIIORequest_t *mpi_request, u16 smid, struct scsi_cmnd *scmd,
> + struct _pcie_device *pcie_device)
> +{
<snip>
> + /* Return 0, indicating we built a native SGL. */
> + return 1;
> +}
This function doesn't return 0 ever. Not sure why it's here.
Curious about your device, though, if a nvme native SGL can *not* be
built, does the HBA firmware then buffer it in its local memory before
sending/receiving to/from the host?
And if a native SGL can be built, does the NVMe target DMA directly
to/from host memory, giving a performance boost?
Powered by blists - more mailing lists