[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Xen-devel] [PATCH v2 00/13] "Non-shared" IOMMU support on ARM



> From: Oleksandr Tyshchenko
> Sent: Wednesday, July 26, 2017 1:27 AM
> 
> From: Oleksandr Tyshchenko <oleksandr_tyshchenko@xxxxxxxx>
> 
> Hi, all.
> 
> The purpose of this patch series is to create a base for porting
> any "Non-shared" IOMMUs to Xen on ARM. Saying "Non-shared" IOMMU I
> mean
> the IOMMU that can't share the page table with the CPU.

Is "non-shared" IOMMU a standard terminology in ARM side? I quickly 
searched to find it mostly used in this thread...

On the other hand, all IOMMUs support a basic DMA remapping 
mechanism with page table not shared with CPU. Then some IOMMUs
may optional support Shared Virtual Memory (SVM) through page
sharing with CPU. Then I'm not sure why need to highlight the
"non-shared" manner in this thread, instead of just saying 
IPMMU-VMSA support...

> Primarily, we are interested in IPMMU-VMSA and I hope that it will be the
> first candidate.
> It is VMSA-compatible IOMMU that integrated in the newest Renesas R-Car
> Gen3 SoCs (ARM).
> I am about to push IPMMU-VMSA support in a while.
> 
> With regard to the patch series, it was rebased on Xen 4.9.0 release and
> tested on Renesas R-Car Gen3
> H3/M3 based boards with applied IPMMU-VMSA support:
> - Patches 1 and 3 have Julien's Rb.
> - Patch 2 has Jan's Rb but only for x86 and generic parts.
> - Patch 4 has Julien's Ab.
> - Patches 5,6,9,10 were slightly reworked.
> - Patch 7 was significantly reworked. The previous patch -> iommu: Split
> iommu_hwdom_init() into arch specific parts
> - Patches 8,11,12,13 are new.
> 
> Not really sure about x86-related changes since I had no possibility to check.
> So, compile-tested on x86.
> 
> You can find current patch series here:
> repo: https://github.com/otyshchenko1/xen.git branch:
> non_shared_iommu_v2
> 
> Previous patch series here:
> [PATCH v1 00/10] "Non-shared" IOMMU support on ARM
> https://www.mail-archive.com/xen-devel@xxxxxxxxxxxxx/msg107532.html
> 
> [RFC PATCH 0/9] "Non-shared" IOMMU support on ARM
> https://www.mail-archive.com/xen-devel@xxxxxxxxxxxxx/msg100468.html
> 
> Thank you.
> 
> Oleksandr Tyshchenko (13):
>   xen/device-tree: Add dt_count_phandle_with_args helper
>   iommu: Add extra order argument to the IOMMU APIs and platform
>     callbacks
>   xen/arm: p2m: Add helper to convert p2m type to IOMMU flags
>   xen/arm: p2m: Update IOMMU mapping whenever possible if page table is
>     not shared
>   iommu/arm: Re-define iommu_use_hap_pt(d) as iommu_hap_pt_share
>   iommu: Add extra use_iommu argument to iommu_domain_init()
>   iommu: Make decision about needing IOMMU for hardware domains in
>     advance
>   iommu/arm: Misc fixes for arch specific part
>   xen/arm: Add use_iommu flag to xen_arch_domainconfig
>   xen/arm: domain_build: Don't expose IOMMU specific properties to the
>     guest
>   iommu/arm: smmu: Squash map_pages/unmap_pages with
> map_page/unmap_page
>   [RFC] iommu: VT-d: Squash map_pages/unmap_pages with
>     map_page/unmap_page
>   [RFC] iommu: AMD-Vi: Squash map_pages/unmap_pages with
>     map_page/unmap_page
> 
>  tools/libxl/libxl_arm.c                       |   8 +
>  xen/arch/arm/domain.c                         |   2 +-
>  xen/arch/arm/domain_build.c                   |  10 ++
>  xen/arch/arm/p2m.c                            |  10 +-
>  xen/arch/x86/domain.c                         |   2 +-
>  xen/arch/x86/mm.c                             |  11 +-
>  xen/arch/x86/mm/p2m-ept.c                     |  21 +--
>  xen/arch/x86/mm/p2m-pt.c                      |  26 +---
>  xen/arch/x86/mm/p2m.c                         |  38 +----
>  xen/arch/x86/x86_64/mm.c                      |   5 +-
>  xen/common/device_tree.c                      |   7 +
>  xen/common/grant_table.c                      |  10 +-
>  xen/drivers/passthrough/amd/iommu_map.c       | 212 +++++++++++++++----
> -------
>  xen/drivers/passthrough/amd/pci_amd_iommu.c   |  10 +-
>  xen/drivers/passthrough/arm/iommu.c           |   7 +-
>  xen/drivers/passthrough/arm/smmu.c            |  23 ++-
>  xen/drivers/passthrough/iommu.c               |  73 ++++-----
>  xen/drivers/passthrough/vtd/iommu.c           | 116 +++++++++-----
>  xen/drivers/passthrough/vtd/x86/vtd.c         |   4 +-
>  xen/drivers/passthrough/x86/iommu.c           |   6 +-
>  xen/include/asm-arm/iommu.h                   |   4 +-
>  xen/include/asm-arm/p2m.h                     |  34 +++++
>  xen/include/asm-x86/hvm/svm/amd-iommu-proto.h |   8 +-
>  xen/include/public/arch-arm.h                 |   5 +
>  xen/include/xen/device_tree.h                 |  19 +++
>  xen/include/xen/iommu.h                       |  24 +--
>  26 files changed, 402 insertions(+), 293 deletions(-)
> 
> --
> 2.7.4
> 
> 
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@xxxxxxxxxxxxx
> https://lists.xen.org/xen-devel
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxx
https://lists.xen.org/xen-devel

 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.