--- v2
+++ v7
@@ -1,36 +1,52 @@
-This accelerates IOMMU operations in real and virtual
-mode in the host kernel for the KVM guest.
+This accelerates VFIO DMA operations on POWER by moving them
+into kernel.
-The first patch with multitce support is useful for emulated devices as is.
+The changes in this series are:
+1. rebased on v3.11-rc3.
+2. VFIO external user API will go through VFIO tree so it is
+excluded from this series.
+3. As nobody ever reacted on "hashtable: add hash_for_each_possible_rcu_notrace()",
+Ben suggested to push it via his tree so I included it to the series.
+4. realmode_(get|put)_page is reworked.
-The other patches are designed for VFIO although this series
-does not contain any VFIO related code as the connection between
-VFIO and the new handlers is to be made in QEMU
-via ioctl to the KVM fd.
+More details in the individual patch comments.
-The series was made and tested against v3.10-rc1.
-
-
-Alexey Kardashevskiy (4):
+Alexey Kardashevskiy (10):
+ hashtable: add hash_for_each_possible_rcu_notrace()
+ KVM: PPC: reserve a capability number for multitce support
+ KVM: PPC: reserve a capability and ioctl numbers for realmode VFIO
+ powerpc: Prepare to support kernel handling of IOMMU map/unmap
+ powerpc: add real mode support for dma operations on powernv
+ KVM: PPC: enable IOMMU_API for KVM_BOOK3S_64 permanently
KVM: PPC: Add support for multiple-TCE hcalls
- powerpc: Prepare to support kernel handling of IOMMU map/unmap
+ powerpc/iommu: rework to support realmode
KVM: PPC: Add support for IOMMU in-kernel handling
KVM: PPC: Add hugepage support for IOMMU in-kernel handling
- Documentation/virtual/kvm/api.txt | 42 +++
- arch/powerpc/include/asm/kvm_host.h | 7 +
- arch/powerpc/include/asm/kvm_ppc.h | 40 ++-
- arch/powerpc/include/asm/pgtable-ppc64.h | 4 +
- arch/powerpc/include/uapi/asm/kvm.h | 7 +
- arch/powerpc/kvm/book3s_64_vio.c | 398 ++++++++++++++++++++++++-
- arch/powerpc/kvm/book3s_64_vio_hv.c | 471 ++++++++++++++++++++++++++++--
- arch/powerpc/kvm/book3s_hv.c | 39 +++
- arch/powerpc/kvm/book3s_hv_rmhandlers.S | 6 +
- arch/powerpc/kvm/book3s_pr_papr.c | 37 ++-
- arch/powerpc/kvm/powerpc.c | 15 +
- arch/powerpc/mm/init_64.c | 77 ++++-
- include/uapi/linux/kvm.h | 5 +
- 13 files changed, 1120 insertions(+), 28 deletions(-)
+ Documentation/virtual/kvm/api.txt | 52 +++
+ arch/powerpc/include/asm/iommu.h | 9 +-
+ arch/powerpc/include/asm/kvm_host.h | 37 +++
+ arch/powerpc/include/asm/kvm_ppc.h | 18 +-
+ arch/powerpc/include/asm/machdep.h | 12 +
+ arch/powerpc/include/asm/pgtable-ppc64.h | 2 +
+ arch/powerpc/include/uapi/asm/kvm.h | 7 +
+ arch/powerpc/kernel/iommu.c | 202 +++++++----
+ arch/powerpc/kvm/Kconfig | 1 +
+ arch/powerpc/kvm/book3s_64_vio.c | 533 +++++++++++++++++++++++++++++-
+ arch/powerpc/kvm/book3s_64_vio_hv.c | 405 +++++++++++++++++++++--
+ arch/powerpc/kvm/book3s_hv.c | 41 ++-
+ arch/powerpc/kvm/book3s_hv_rmhandlers.S | 8 +-
+ arch/powerpc/kvm/book3s_pr_papr.c | 35 ++
+ arch/powerpc/kvm/powerpc.c | 15 +
+ arch/powerpc/mm/init_64.c | 50 ++-
+ arch/powerpc/platforms/powernv/pci-ioda.c | 47 ++-
+ arch/powerpc/platforms/powernv/pci.c | 38 ++-
+ arch/powerpc/platforms/powernv/pci.h | 3 +-
+ include/linux/hashtable.h | 15 +
+ include/linux/mm.h | 14 +
+ include/linux/page-flags.h | 4 +-
+ include/uapi/linux/kvm.h | 5 +
+ 23 files changed, 1430 insertions(+), 123 deletions(-)
--
-1.7.10.4
+1.8.3.2