[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v4 00/15] paravirtual IOMMU interface
The idea of a paravirtual IOMMU interface was last discussed on xen-devel several years ago and narrowed down on a draft specification [1]. There was also an RFC patch series posted with an implementation, however this was never followed through. In this patch series I have tried to simplify the interface and therefore have moved away from the draft specification. There is not yet any new specification but hopefully the interface in the introduced iommu_op header file will be understandable without such a specification. [1] https://lists.xenproject.org/archives/html/xen-devel/2016-02/msg01428.html Paul Durrant (15): re-work commit 3e06b989 "IOMMU: make page table population preemptible"... iommu: introduce the concept of BFN... iommu: make use of type-safe BFN and MFN in exported functions iommu: push use of type-safe BFN and MFN into iommu_ops iommu: don't domain_crash() inside iommu_map/unmap_page() public / x86: introduce __HYPERCALL_iommu_op iommu: track reserved ranges using a rangeset x86: add iommu_op to query reserved ranges vtd: add lookup_page method to iommu_ops mm / iommu: include need_iommu() test in iommu_use_hap_pt() mm / iommu: split need_iommu() into has_iommu_pt() and sync_iommu_pt() x86: add iommu_op to enable modification of IOMMU mappings memory: add get_paged_gfn() as a wrapper... x86: add iommu_ops to modify and flush IOMMU mappings x86: extend the map and unmap iommu_ops to support grant references tools/flask/policy/modules/xen.if | 1 + xen/arch/arm/p2m.c | 9 +- xen/arch/x86/Makefile | 1 + xen/arch/x86/domain.c | 6 - xen/arch/x86/hvm/emulate.c | 32 +- xen/arch/x86/hvm/hvm.c | 16 +- xen/arch/x86/hvm/hypercall.c | 1 + xen/arch/x86/hvm/mtrr.c | 5 +- xen/arch/x86/hypercall.c | 1 + xen/arch/x86/iommu_op.c | 558 ++++++++++++++++++++++++++ xen/arch/x86/mm.c | 15 +- xen/arch/x86/mm/mem_sharing.c | 2 +- xen/arch/x86/mm/p2m-ept.c | 19 +- xen/arch/x86/mm/p2m-pod.c | 3 +- xen/arch/x86/mm/p2m-pt.c | 52 ++- xen/arch/x86/mm/p2m.c | 44 +- xen/arch/x86/mm/paging.c | 2 +- xen/arch/x86/pv/hypercall.c | 1 + xen/arch/x86/x86_64/mm.c | 8 +- xen/common/grant_table.c | 201 ++++++++-- xen/common/memory.c | 69 +++- xen/common/vm_event.c | 2 +- xen/drivers/passthrough/amd/iommu_cmd.c | 18 +- xen/drivers/passthrough/amd/iommu_map.c | 86 ++-- xen/drivers/passthrough/amd/pci_amd_iommu.c | 6 +- xen/drivers/passthrough/arm/smmu.c | 20 +- xen/drivers/passthrough/device_tree.c | 19 +- xen/drivers/passthrough/iommu.c | 84 ++-- xen/drivers/passthrough/pci.c | 6 +- xen/drivers/passthrough/vtd/iommu.c | 90 +++-- xen/drivers/passthrough/vtd/iommu.h | 3 + xen/drivers/passthrough/vtd/x86/vtd.c | 23 +- xen/drivers/passthrough/x86/iommu.c | 83 ++-- xen/include/Makefile | 2 + xen/include/asm-arm/grant_table.h | 2 +- xen/include/asm-arm/iommu.h | 2 +- xen/include/asm-arm/p2m.h | 3 + xen/include/asm-x86/grant_table.h | 2 +- xen/include/asm-x86/hvm/svm/amd-iommu-proto.h | 8 +- xen/include/asm-x86/iommu.h | 6 +- xen/include/asm-x86/p2m.h | 2 + xen/include/public/iommu_op.h | 171 ++++++++ xen/include/public/xen.h | 1 + xen/include/xen/grant_table.h | 7 + xen/include/xen/hypercall.h | 12 + xen/include/xen/iommu.h | 66 ++- xen/include/xen/mm.h | 10 +- xen/include/xen/sched.h | 12 +- xen/include/xlat.lst | 6 + xen/include/xsm/dummy.h | 6 + xen/include/xsm/xsm.h | 6 + xen/xsm/dummy.c | 1 + xen/xsm/flask/hooks.c | 6 + xen/xsm/flask/policy/access_vectors | 2 + 54 files changed, 1459 insertions(+), 360 deletions(-) create mode 100644 xen/arch/x86/iommu_op.c create mode 100644 xen/include/public/iommu_op.h --- Cc: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> Cc: Brian Woods <brian.woods@xxxxxxx> Cc: Daniel De Graaf <dgdegra@xxxxxxxxxxxxx> Cc: George Dunlap <george.dunlap@xxxxxxxxxx> Cc: Ian Jackson <ian.jackson@xxxxxxxxxxxxx> Cc: Jan Beulich <jbeulich@xxxxxxxx> Cc: Julien Grall <julien.grall@xxxxxxx> Cc: Jun Nakajima <jun.nakajima@xxxxxxxxx> Cc: Kevin Tian <kevin.tian@xxxxxxxxx> Cc: Konrad Rzeszutek Wilk <konrad.wilk@xxxxxxxxxx> Cc: Razvan Cojocaru <rcojocaru@xxxxxxxxxxxxxxx> Cc: Stefano Stabellini <sstabellini@xxxxxxxxxx> Cc: Suravee Suthikulpanit <suravee.suthikulpanit@xxxxxxx> Cc: Tamas K Lengyel <tamas@xxxxxxxxxxxxx> Cc: Tim Deegan <tim@xxxxxxx> Cc: Wei Liu <wei.liu2@xxxxxxxxxx> -- 2.11.0 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |