Re: [PATCH v2 00/13] mpt3sas driver NVMe support:

From: Hannes Reinecke
Date: Wed Aug 02 2017 - 04:14:49 EST


On 07/14/2017 03:22 PM, Suganath Prabu S wrote:
> Ventura Series controller are Tri-mode. The controller and
> firmware are capable of supporting NVMe devices and
> PCIe switches to be connected with the controller. This
> patch set adds driver level support for NVMe devices and
> PCIe switches.
>
> Suganath Prabu S (13):
> mpt3sas: Update MPI Header
> mpt3sas: Add nvme device support in slave alloc, target alloc and
> probe
> mpt3sas: SGL to PRP Translation for I/Os to NVMe devices
> mpt3sas: Added support for nvme encapsulated request message.
> mpt3sas: API 's to support NVMe drive addition to SML
> mpt3sas: API's to remove nvme drive from sml
> mpt3sas: Handle NVMe PCIe device related events generated
> from firmware.
> mpt3sas: Set NVMe device queue depth as 128
> mpt3sas: scan and add nvme device after controller reset
> mpt3as: Add-Task-management-debug-info-for-NVMe-drives.
> mpt3sas: NVMe drive support for BTDHMAPPING ioctl command and log
> info
> mpt3sas: Fix nvme drives checking for tlr.
> mpt3sas: Update mpt3sas driver version.
>
> drivers/scsi/mpt3sas/mpi/mpi2.h | 43 +-
> drivers/scsi/mpt3sas/mpi/mpi2_cnfg.h | 647 ++++++++++-
> drivers/scsi/mpt3sas/mpi/mpi2_init.h | 11 +-
> drivers/scsi/mpt3sas/mpi/mpi2_ioc.h | 331 ++++++-
> drivers/scsi/mpt3sas/mpi/mpi2_pci.h | 142 +++
> drivers/scsi/mpt3sas/mpi/mpi2_tool.h | 14 +-
> drivers/scsi/mpt3sas/mpt3sas_base.c | 710 +++++++++++-
> drivers/scsi/mpt3sas/mpt3sas_base.h | 171 +++-
> drivers/scsi/mpt3sas/mpt3sas_config.c | 100 ++
> drivers/scsi/mpt3sas/mpt3sas_ctl.c | 158 ++-
> drivers/scsi/mpt3sas/mpt3sas_scsih.c | 1874 ++++++++++++++++++++++++++++--
> drivers/scsi/mpt3sas/mpt3sas_warpdrive.c | 2 +-
> 12 files changed, 4063 insertions(+), 140 deletions(-)
> create mode 100644 drivers/scsi/mpt3sas/mpi/mpi2_pci.h
>
I'm not happy with this approach.
NVMe devices should _not_ appear as SCSI devices; this will just confuse
matters _and_ will be incompatible with 'normal' NVMe devices.

Rather I would like to see the driver to hook into the existing NVMe
framework (which essentially means to treat the mpt3sas as a weird
NVMe-over-Fabrics HBA), and expose the NVMe devices like any other NVMe HBA.

I'm sorry that you'll have to redo your patchset (again), but this is
the only way I see how this patchset can be brought forward.

I'd be happy to discuss implementation details with you.

Cheers,

Hannes
--
Dr. Hannes Reinecke Teamlead Storage & Networking
hare@xxxxxxx +49 911 74053 688
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 NÃrnberg
GF: F. ImendÃrffer, J. Smithard, J. Guild, D. Upmanyu, G. Norton
HRB 21284 (AG NÃrnberg)