[PATCH v2 2/5] nvmef: export nvmef_create_ctrl()

Christoph Hellwig hch at lst.de
Mon Oct 14 04:45:28 PDT 2024


On Mon, Oct 14, 2024 at 06:10:36PM +0900, Damien Le Moal wrote:
> Nope, the PCIe "transport" is the front-end of the endpoint driver.
> What this patch does is to allow this driver to be created by passing it a
> string that is normally used for "nvme connect" command, which calls
> nvmf_create_ctrl().

That's a pretty wrong and broken layering.  PCIe isn't any different
than RDMA or TCP in being a NVMe transport.

> The entire thing was created to not add a PCIe host transport but rather to use
> a locally created fabric host controller which connect to whatever the user
> wants. That is: the PCI endpoint driver can implement a PCI interface which uses
> a loop nvme device, or a tcp nvme device (and if you have a board that can do
> rdma or fc, that can also be used as the backend nvme device used from the pci
> endpoint driver).

You can always use the nvmet passthrough backend to directly use a
nvme controller to export through nvmet. 




More information about the Linux-nvme mailing list