The KVM-VFIO device was just introduced into kvm.git/next with an
initial goal of managing whether guests are capable of non-coherent
DMA.  This is potentially important for any VFIO assigned device, but
particularly important to some graphics cards which are known to make
use of the NoSnoop capabilities of PCIe.  By registering VFIO groups
into the KVM-VFIO device, KVM is able to verify that a user has an
assigned device and (eventually) query VFIO directly for properties of
the IOMMU domain.  In the short term, KVM assumes any VFIO assigned
device is capable of non-coherent DMA.

This support can certainly be seen as a bug fix (devices are capable
of NoSnoop DMA today and qemu/kvm does not emulate coherency ops like
WBINVD), so I'd certainly like to get feedback on whether this is
acceptable QEMU 1.7 material.  The fact that it depends on a kernel
header update which is not yet in mainline may be a gating factor as
well.  We've taken linux-header updates from kvm.git in the past and
barring a patch faux pas from Gleb & Paolo it will get into mainline.
I've stated in the past that we should default to taking header
updates from mainline, but the impending v3.12 release and merge
window doesn't fit well with the QEMU 1.7 release timeframe.  I could
also strip the header update down to minimum required if that helps.

The other option is to wait for QEMU 1.8 to open at which point we
should be close to having a v3.13-rc1 tag to pull header updates from
and I can propose both the KVM and QEMU patches for stable.  Getting
it in for QEMU 1.7 would make a lot of people playing with VGA
passthrough very happy.  Thoughts?  Thanks,

Alex
---

Alex Williamson (2):
      linux-headers: Update from kvm.git 
81e87e26796782e014fd1f2bb9cd8fb6ce4021a8
      vfio-pci: Make use of new KVM-VFIO device


 hw/misc/vfio.c                           |   67 ++++++++++++++++++++++++++++++
 linux-headers/asm-arm/kvm.h              |    3 +
 linux-headers/asm-powerpc/epapr_hcalls.h |    4 +-
 linux-headers/asm-x86/kvm.h              |    6 +--
 linux-headers/linux/kvm.h                |    7 +++
 5 files changed, 81 insertions(+), 6 deletions(-)

Reply via email to