[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [PATCH 0/7] paravirtual IOMMU interface
> -----Original Message----- > From: Tian, Kevin [mailto:kevin.tian@xxxxxxxxx] > Sent: 13 February 2018 06:21 > To: Paul Durrant <Paul.Durrant@xxxxxxxxxx>; xen-devel@xxxxxxxxxxxxxxxxxxxx > Cc: Andrew Cooper <Andrew.Cooper3@xxxxxxxxxx>; Daniel De Graaf > <dgdegra@xxxxxxxxxxxxx>; George Dunlap <George.Dunlap@xxxxxxxxxx>; > Ian Jackson <Ian.Jackson@xxxxxxxxxx>; Jan Beulich <jbeulich@xxxxxxxx>; > Julien Grall <julien.grall@xxxxxxx>; Nakajima, Jun > <jun.nakajima@xxxxxxxxx>; Konrad Rzeszutek Wilk > <konrad.wilk@xxxxxxxxxx>; Stefano Stabellini <sstabellini@xxxxxxxxxx>; > Suravee Suthikulpanit <suravee.suthikulpanit@xxxxxxx>; Tim (Xen.org) > <tim@xxxxxxx>; Wei Liu <wei.liu2@xxxxxxxxxx> > Subject: RE: [PATCH 0/7] paravirtual IOMMU interface > > > From: Paul Durrant [mailto:paul.durrant@xxxxxxxxxx] > > Sent: Monday, February 12, 2018 6:47 PM > > > > The idea of a paravirtual IOMMU interface was last discussed on xen-devel > > more than two 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. > > bear sending out an updated spec? > I'll have to write one, but I agree it is probably worthwhile for the record. The intention is the same as it was when the old spec. was written but I hope this implementation is less complex (though it may not yet be fully complete). In the meantime I hope each patch is sufficiently small to be reasonably self-explanatory. Cheers, Paul > > > > Patches #1 - #3 in the series introduce 'bus frame numbers' into Xen (frame > > numbers relating to the IOMMU rather than the MMU). The modifications > > are > > in common code and so affect ARM as well as x86. > > > > Patch #4 adds a pre-requisite method in iommu_ops and an > > implementation > > for VT-d. I have not done an implmentation for AMD IOMMUs as my test > > hard- > > ware is Intel based, but one may be added in future. > > > > Patches #5 - #7 introduce the new 'iommu_op' hypercall with sub- > > operations > > to query ranges reserved in the IOMMU, map and unmap pages, and flush > > the > > IOTLB. > > > > For testing purposes, I have implemented patches to a Linux PV dom0 to > > set > > up a 1:1 BFN:GFN mapping and use normal swiotlb dma operations rather > > then xen-swiotlb. > > > > [1] https://lists.xenproject.org/archives/html/xen-devel/2016- > > 02/msg01428.html > > > > Paul Durrant (7): > > 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 > > vtd: add lookup_page method to iommu_ops > > public / x86: introduce __HYPERCALL_iommu_op > > x86: add iommu_op to query reserved ranges > > x86: add iommu_ops to map and unmap pages, and also to flush the > > IOTLB > > > > tools/flask/policy/modules/xen.if | 1 + > > xen/arch/arm/p2m.c | 3 +- > > xen/arch/x86/Makefile | 1 + > > xen/arch/x86/hvm/hypercall.c | 1 + > > xen/arch/x86/hypercall.c | 1 + > > xen/arch/x86/iommu_op.c | 476 > > ++++++++++++++++++++++++++ > > xen/arch/x86/mm.c | 7 +- > > xen/arch/x86/mm/p2m-ept.c | 8 +- > > xen/arch/x86/mm/p2m-pt.c | 8 +- > > xen/arch/x86/mm/p2m.c | 15 +- > > xen/arch/x86/pv/hypercall.c | 1 + > > xen/arch/x86/x86_64/mm.c | 5 +- > > xen/common/grant_table.c | 10 +- > > xen/common/memory.c | 4 +- > > xen/drivers/passthrough/amd/iommu_cmd.c | 18 +- > > xen/drivers/passthrough/amd/iommu_map.c | 85 ++--- > > xen/drivers/passthrough/amd/pci_amd_iommu.c | 4 +- > > xen/drivers/passthrough/arm/smmu.c | 22 +- > > xen/drivers/passthrough/iommu.c | 28 +- > > xen/drivers/passthrough/vtd/iommu.c | 76 +++- > > xen/drivers/passthrough/vtd/iommu.h | 2 + > > xen/drivers/passthrough/vtd/x86/vtd.c | 3 +- > > xen/drivers/passthrough/x86/iommu.c | 2 +- > > xen/include/Makefile | 2 + > > xen/include/asm-x86/hvm/svm/amd-iommu-proto.h | 8 +- > > xen/include/public/iommu_op.h | 127 +++++++ > > xen/include/public/xen.h | 1 + > > xen/include/xen/hypercall.h | 12 + > > xen/include/xen/iommu.h | 42 ++- > > xen/include/xlat.lst | 5 + > > 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 + > > 35 files changed, 868 insertions(+), 131 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@xxxxxxxxxxxxx> > > 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 |