Re: [PATCH v4 00/14] mpt3sas driver NVMe support:
From: Martin K. Petersen
Date: Wed Aug 30 2017 - 23:06:18 EST
Hi Suganath,
> Theoretically we want to use h/w capability (to translate IEEE to PRP)
> for smaller IO size to leverage h/w capability.
Nobody says we have to use the capability just because the hardware has
it.
Unlike some other operating systems, Linux will only submit I/Os to the
driver that conform to the reported underlying constraints of the
hardware. I fail to understand how letting the HBA firmware translate an
SGL to a PRP for a subset of I/Os could do anything but add latency.
Plus complexity in the hot path of the driver.
> - If the unmap translation in firmware is slow, why don't you translate
> WRITE SAME/w UNMAP set to DSM DEALLOCATE without requiring
> applications to do encapsulated passthrough?
> => As of now, current FW supports UNMAP command but not WRITE_SAME for
> NVME drive. We did some experiment to convert UMAP command in driver,
> but that is not really giving any performance improvement.
It is imperative that the common use case, Linux' discard
infrastructure, is working correctly and is as performant as any
application-driven passthrough workaround.
Unlike SCSI-to-SATA translation you have the benefit of a 1:1 mapping
between UNMAP and DEALLOCATE. I'm not even sure why there would be a
significant performance penalty in the firmware?
> We would like to continue with UNMAP (and all other non-read/write
> commands) to be handled in FW.
And yet patch 4 circumvents that statement by adding support for
encapsulated commands to bypass the FW translation...
--
Martin K. Petersen Oracle Linux Engineering