qemu-e2k/hw/vfio
Alex Williamson dfbee78db8 vfio/pci: Add NVIDIA GPUDirect Cliques support
NVIDIA has defined a specification for creating GPUDirect "cliques",
where devices with the same clique ID support direct peer-to-peer DMA.
When running on bare-metal, tools like NVIDIA's p2pBandwidthLatencyTest
(part of cuda-samples) determine which GPUs can support peer-to-peer
based on chipset and topology.  When running in a VM, these tools have
no visibility to the physical hardware support or topology.  This
option allows the user to specify hints via a vendor defined
capability.  For instance:

  <qemu:commandline>
    <qemu:arg value='-set'/>
    <qemu:arg value='device.hostdev0.x-nv-gpudirect-clique=0'/>
    <qemu:arg value='-set'/>
    <qemu:arg value='device.hostdev1.x-nv-gpudirect-clique=1'/>
    <qemu:arg value='-set'/>
    <qemu:arg value='device.hostdev2.x-nv-gpudirect-clique=1'/>
  </qemu:commandline>

This enables two cliques.  The first is a singleton clique with ID 0,
for the first hostdev defined in the XML (note that since cliques
define peer-to-peer sets, singleton clique offer no benefit).  The
subsequent two hostdevs are both added to clique ID 1, indicating
peer-to-peer is possible between these devices.

QEMU only provides validation that the clique ID is valid and applied
to an NVIDIA graphics device, any validation that the resulting
cliques are functional and valid is the user's responsibility.  The
NVIDIA specification allows a 4-bit clique ID, thus valid values are
0-15.

Signed-off-by: Alex Williamson <alex.williamson@redhat.com>
2017-10-03 12:57:36 -06:00
..
amd-xgbe.c sysbus: Set user_creatable=false by default on TYPE_SYS_BUS_DEVICE 2017-05-17 10:37:01 -03:00
calxeda-xgmac.c sysbus: Set user_creatable=false by default on TYPE_SYS_BUS_DEVICE 2017-05-17 10:37:01 -03:00
ccw.c vfio/ccw: fix initialization of the Object DeviceState pointer in the common base-device 2017-07-25 09:17:42 +02:00
common.c vfio-pci, ppc64/spapr: Reorder group-to-container attaching 2017-07-17 12:39:09 -06:00
Makefile.objs vfio/ccw: vfio based subchannel passthrough driver 2017-05-19 12:29:01 +02:00
pci-quirks.c vfio/pci: Add NVIDIA GPUDirect Cliques support 2017-10-03 12:57:36 -06:00
pci.c vfio/pci: Add NVIDIA GPUDirect Cliques support 2017-10-03 12:57:36 -06:00
pci.h vfio/pci: Add NVIDIA GPUDirect Cliques support 2017-10-03 12:57:36 -06:00
platform.c vfio/platform: fix use of freed memory 2017-07-26 11:38:17 -06:00
spapr.c vfio, spapr: Fix levels calculation 2017-09-15 10:29:48 +10:00
trace-events trace-events: fix code style: print 0x before hex numbers 2017-08-01 12:13:07 +01:00