This enables in-kernel acceleration of H_PUT_TCE/etc hypercalls for pseries guests using VFIO. As pseries is a para-virtualized environment, the guest can see and control IOMMUs via special hypercalls which let the guest to add and remove mappings in real hardware IOMMU. This was posted last time quite a long time ago so I dropped versions now, this re-respin is v1. This was successfully used in the PowerKVM product for quite a while now. This is based on git://git.kernel.org/pub/scm/virt/kvm/kvm.git , "next" branch which got "multi-tce in-kernel acceleration" and "64 bit in-kernel TCE" support. Please comment. Thanks! Alexey Kardashevskiy (9): KVM: PPC: Reserve KVM_CAP_SPAPR_TCE_VFIO capability number powerpc/mmu: Add real mode support for IOMMU preregistered memory KVM: PPC: Use preregistered memory API to access TCE list powerpc/powernv/iommu: Add real mode version of xchg() KVM: PPC: Enable IOMMU_API for KVM_BOOK3S_64 permanently KVM: PPC: Associate IOMMU group with guest view of TCE table KVM: PPC: Create a virtual-mode only TCE table handlers KVM: PPC: Add in-kernel handling for VFIO KVM: PPC: VFIO device: support SPAPR TCE Documentation/virtual/kvm/devices/vfio.txt | 21 +- arch/powerpc/include/asm/iommu.h | 7 + arch/powerpc/include/asm/kvm_host.h | 8 + arch/powerpc/include/asm/kvm_ppc.h | 6 + arch/powerpc/include/asm/mmu_context.h | 6 +- arch/powerpc/kernel/iommu.c | 15 ++ arch/powerpc/kvm/Kconfig | 2 + arch/powerpc/kvm/Makefile | 5 +- arch/powerpc/kvm/book3s_64_vio.c | 344 +++++++++++++++++++++++++++++ arch/powerpc/kvm/book3s_64_vio_hv.c | 280 +++++++++++++++++++++-- arch/powerpc/kvm/book3s_hv_rmhandlers.S | 4 +- arch/powerpc/kvm/powerpc.c | 1 + arch/powerpc/mm/mmu_context_iommu.c | 45 +++- arch/powerpc/platforms/powernv/pci-ioda.c | 28 ++- include/uapi/linux/kvm.h | 10 + virt/kvm/vfio.c | 106 +++++++++ 16 files changed, 855 insertions(+), 33 deletions(-) -- 2.5.0.rc3 -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html