From: Alex Williamson <alex.williamson@redhat.com>
To: kvm@vger.kernel.org, gleb@redhat.com
Cc: aik@ozlabs.ru, pbonzini@redhat.com, linux-kernel@vger.kernel.org
Subject: [PATCH 0/4] KVM-VFIO pseudo device for VFIO coherency
Date: Tue, 29 Oct 2013 10:13:16 -0600 [thread overview]
Message-ID: <20131029160019.22578.16409.stgit@bling.home> (raw)
This series allows QEMU to create a VFIO device in KVM for registering
VFIO groups. The initial user of this interface is to toggle whether
KVM emulates coherency instructions like WBINVD. For this particular
use case I've toyed with the idea of disabling NoSnoop at the device,
but we already have an example where this fails as video cards often
have backdoors to PCI config space and may re-enable NoSnoop support.
Regardless of whether the driver should be doing this or not, we don't
really want to rely on well behaved drivers for things as important as
coherency.
In this first step we assume that noncoherent DMA is possible any time
a VFIO group is present. I have follow-on patches which fix a bug in
intel-iommu which that prevents us from always enabling SNP support in
the IOMMU page tables and prevents us from tracking the hardware
capabilities of the IOMMU domain for coherency. Once that is fixed I
can fill in the TODO which would allow us to only mark VFIO as
noncoherent when necessary.
POWER support for VFIO would also like to make use of the VFIO pseudo
device interface, but has some remaining work to architect an
interface into it.
I'd very much like to see this for v3.13. Thanks,
Alex
---
Alex Williamson (4):
kvm: Destroy & free KVM devices on release
kvm: Add VFIO device
kvm/x86: Convert iommu_flags to iommu_noncoherent
kvm: Create non-coherent DMA registeration
Documentation/virtual/kvm/devices/vfio.txt | 22 ++
arch/ia64/include/asm/kvm_host.h | 2
arch/powerpc/kvm/book3s_xics.c | 1
arch/x86/include/asm/kvm_host.h | 4
arch/x86/kvm/Kconfig | 1
arch/x86/kvm/Makefile | 2
arch/x86/kvm/vmx.c | 3
arch/x86/kvm/x86.c | 21 ++
include/linux/kvm_host.h | 23 ++
include/uapi/linux/kvm.h | 4
virt/kvm/Kconfig | 3
virt/kvm/iommu.c | 22 +-
virt/kvm/kvm_main.c | 10 +
virt/kvm/vfio.c | 263 ++++++++++++++++++++++++++++
14 files changed, 362 insertions(+), 19 deletions(-)
create mode 100644 Documentation/virtual/kvm/devices/vfio.txt
create mode 100644 virt/kvm/vfio.c
next reply other threads:[~2013-10-29 16:13 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-29 16:13 Alex Williamson [this message]
2013-10-29 16:13 ` [PATCH 1/4] kvm: Destroy & free KVM devices on release Alex Williamson
2013-10-30 10:40 ` Gleb Natapov
2013-10-30 14:30 ` Alex Williamson
2013-10-30 15:33 ` Gleb Natapov
2013-10-30 15:42 ` Paolo Bonzini
2013-10-30 15:44 ` Gleb Natapov
2013-10-30 15:56 ` Alex Williamson
2013-10-30 16:10 ` Paolo Bonzini
2013-10-30 16:18 ` Gleb Natapov
2013-10-29 16:13 ` [PATCH 2/4] kvm: Add VFIO device Alex Williamson
2013-10-29 16:13 ` [PATCH 3/4] kvm/x86: Convert iommu_flags to iommu_noncoherent Alex Williamson
2013-10-29 16:13 ` [PATCH 4/4] kvm: Create non-coherent DMA registeration Alex Williamson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20131029160019.22578.16409.stgit@bling.home \
--to=alex.williamson@redhat.com \
--cc=aik@ozlabs.ru \
--cc=gleb@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=pbonzini@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).