Re: [PATCH v2 00/10] Copy Offload in NVMe Fabrics with P2P PCI Memory

From: Logan Gunthorpe
Date: Thu Mar 01 2018 - 14:34:18 EST




On 01/03/18 03:31 AM, Sagi Grimberg wrote:
* We also reject using devices that employ 'dma_virt_ops' which should
ÂÂ fairly simply handle Jason's concerns that this work might break with
ÂÂ the HFI, QIB and rxe drivers that use the virtual ops to implement
ÂÂ their own special DMA operations.

That's good, but what would happen for these devices? simply fail the
mapping causing the ulp to fail its rdma operation? I would think
that we need a capability flag for devices that support it.

pci_p2pmem_find() will simply not return any devices when any client that uses dma_virt_ops. So in the NVMe target case it simply will not use P2P memory.

And just in case, pci_p2pdma_map_sg() will also return 0 if the device passed to it uses dma_virt_ops as well. So if someone bypasses pci_p2pmem_find() they will get a failure during map.

Logan