NVIDIA has a specification for exposing a virtual vendor capability which provides a hint to guest drivers as to which sets of GPUs can support direct peer-to-peer DMA. Devices with the same clique ID are expected to support this. The user can specify a clique ID for an NVIDIA graphics device using the new vfio-pci x-nv-gpudirect-clique= option, where valid clique IDs are a 4-bit integer. It's entirely the user's responsibility to specify sets of devices for which P2P works correctly and provides some benefit. This is only useful for DMA between NVIDIA GPUs, therefore it's only useful to specify cliques comprised of more than one GPU. Furthermore, this does not enable DMA between VMs, there is no change to VM DMA mapping, this only exposes hints about existing DMA paths to the guest driver. Thanks,
Alex --- Alex Williamson (3): vfio/pci: Do not unwind on error vfio/pci: Add virtual capabilities quirk infrastructure vfio/pci: Add NVIDIA GPUDirect Cliques support hw/vfio/pci-quirks.c | 114 ++++++++++++++++++++++++++++++++++++++++++++++++++ hw/vfio/pci.c | 17 +++++++ hw/vfio/pci.h | 4 ++ 3 files changed, 133 insertions(+), 2 deletions(-)