[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v3 00/13] 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 (13): grant_table: use term 'mfn' for machine frame numbers... 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 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 | 7 +- xen/arch/x86/Makefile | 1 + xen/arch/x86/hvm/emulate.c | 32 +- xen/arch/x86/hvm/hvm.c | 16 +- xen/arch/x86/hvm/hypercall.c | 1 + xen/arch/x86/hypercall.c | 1 + xen/arch/x86/iommu_op.c | 555 ++++++++++++++++++++++++++ xen/arch/x86/mm.c | 13 +- xen/arch/x86/mm/p2m-ept.c | 13 +- xen/arch/x86/mm/p2m-pt.c | 48 ++- xen/arch/x86/mm/p2m.c | 34 +- xen/arch/x86/pv/hypercall.c | 1 + xen/arch/x86/x86_64/mm.c | 5 +- xen/common/grant_table.c | 331 ++++++++++----- xen/common/memory.c | 63 ++- xen/drivers/passthrough/amd/iommu_cmd.c | 18 +- xen/drivers/passthrough/amd/iommu_map.c | 86 ++-- xen/drivers/passthrough/amd/pci_amd_iommu.c | 4 +- xen/drivers/passthrough/arm/smmu.c | 20 +- xen/drivers/passthrough/iommu.c | 65 +-- 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 | 6 +- xen/include/Makefile | 2 + xen/include/asm-arm/p2m.h | 3 + xen/include/asm-x86/hvm/svm/amd-iommu-proto.h | 8 +- 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/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 + 41 files changed, 1429 insertions(+), 317 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: 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: Stefano Stabellini <sstabellini@xxxxxxxxxx> Cc: Suravee Suthikulpanit <suravee.suthikulpanit@xxxxxxx> 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 |