Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754738Ab3H1IiJ (ORCPT ); Wed, 28 Aug 2013 04:38:09 -0400 Received: from mail-pd0-f179.google.com ([209.85.192.179]:56358 "EHLO mail-pd0-f179.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753753Ab3H1IiB (ORCPT ); Wed, 28 Aug 2013 04:38:01 -0400 From: Alexey Kardashevskiy To: linuxppc-dev@lists.ozlabs.org Cc: Alexey Kardashevskiy , David Gibson , Benjamin Herrenschmidt , Paul Mackerras , Gleb Natapov , Paolo Bonzini , Alexander Graf , kvm@vger.kernel.org, linux-kernel@vger.kernel.org, kvm-ppc@vger.kernel.org, linux-mm@kvack.org, Alex Williamson Subject: [PATCH v9 00/13] KVM: PPC: IOMMU in-kernel handling of VFIO Date: Wed, 28 Aug 2013 18:37:37 +1000 Message-Id: <1377679070-3515-1-git-send-email-aik@ozlabs.ru> X-Mailer: git-send-email 1.8.4.rc4 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3993 Lines: 86 This accelerates VFIO DMA operations on POWER by moving them into kernel. This depends on VFIO external API patch which is on its way to upstream. Changes: v9: * replaced the "link logical bus number to IOMMU group" ioctl to KVM with a KVM device doing the same thing, i.e. the actual changes are in these 3 patches: KVM: PPC: reserve a capability and KVM device type for realmode VFIO KVM: PPC: remove warning from kvmppc_core_destroy_vm KVM: PPC: Add support for IOMMU in-kernel handling * moved some VFIO external API bits to a separate patch to reduce the size of the "KVM: PPC: Add support for IOMMU in-kernel handling" patch * fixed code style problems reported by checkpatch.pl. v8: * fixed comments about capabilities numbers v7: * rebased on v3.11-rc3. * VFIO external user API will go through VFIO tree so it is excluded from this series. * 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. * realmode_(get|put)_page is reworked. More details in the individual patch comments. Alexey Kardashevskiy (13): KVM: PPC: POWERNV: move iommu_add_device earlier hashtable: add hash_for_each_possible_rcu_notrace() KVM: PPC: reserve a capability number for multitce support KVM: PPC: reserve a capability and KVM device type 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/iommu: rework to support realmode KVM: PPC: remove warning from kvmppc_core_destroy_vm KVM: PPC: add trampolines for VFIO external API KVM: PPC: Add support for IOMMU in-kernel handling KVM: PPC: Add hugepage support for IOMMU in-kernel handling Documentation/virtual/kvm/api.txt | 26 + .../virtual/kvm/devices/spapr_tce_iommu.txt | 37 ++ arch/powerpc/include/asm/iommu.h | 18 +- arch/powerpc/include/asm/kvm_host.h | 38 ++ arch/powerpc/include/asm/kvm_ppc.h | 16 +- arch/powerpc/include/asm/machdep.h | 12 + arch/powerpc/include/asm/pgtable-ppc64.h | 2 + arch/powerpc/include/uapi/asm/kvm.h | 8 + arch/powerpc/kernel/iommu.c | 243 +++++---- arch/powerpc/kvm/Kconfig | 1 + arch/powerpc/kvm/book3s_64_vio.c | 597 ++++++++++++++++++++- arch/powerpc/kvm/book3s_64_vio_hv.c | 408 +++++++++++++- arch/powerpc/kvm/book3s_hv.c | 42 +- arch/powerpc/kvm/book3s_hv_rmhandlers.S | 8 +- arch/powerpc/kvm/book3s_pr_papr.c | 35 ++ arch/powerpc/kvm/powerpc.c | 4 + arch/powerpc/mm/init_64.c | 50 +- arch/powerpc/platforms/powernv/pci-ioda.c | 57 +- arch/powerpc/platforms/powernv/pci-p5ioc2.c | 2 +- arch/powerpc/platforms/powernv/pci.c | 75 ++- arch/powerpc/platforms/powernv/pci.h | 3 +- arch/powerpc/platforms/pseries/iommu.c | 8 +- include/linux/hashtable.h | 15 + include/linux/kvm_host.h | 1 + include/linux/mm.h | 14 + include/linux/page-flags.h | 4 +- include/uapi/linux/kvm.h | 3 + virt/kvm/kvm_main.c | 5 + 28 files changed, 1564 insertions(+), 168 deletions(-) create mode 100644 Documentation/virtual/kvm/devices/spapr_tce_iommu.txt -- 1.8.4.rc4 -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/