[PATCH v2 4/5] PCI: endpoint: Add NVMe endpoint function driver

Christoph Hellwig hch at lst.de
Mon Oct 14 04:38:09 PDT 2024


On Mon, Oct 14, 2024 at 07:41:18PM +0900, Damien Le Moal wrote:
>         |    | PCIe NVMe endpoint driver |     |
> 	|    | (Handles BAR registers,   |     |
> 	|    | doorbells, IRQs, SQs, CQs |     |
> 	|    | and DMA transfers)        |     |
>         |    +---------------------------+     |
>         |                  |                   |
>         |    +---------------------------+     |
>         |    |     NVMe fabrics host     |     |
>         |    +---------------------------+     |

That whole fabrics host here is broken.  The PCI frontend needs to
talk directly to the target code instead of doing a completely
pointless roundtrip through the block layer.

> Unless I am mistaken, if I use a PCI transport as the base for the endpoint
> driver, I would be able to connect only to a PCIe nvme device as the backend, no
> ?

No.  Any fabrisc transport (or frontend) can you any of the the
backends (file / bdev and passthrough).




More information about the Linux-nvme mailing list