On 01/03/18 03:31 AM, Sagi Grimberg wrote:
> * We also reject using devices that employ 'dma_virt_ops'
> 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.