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