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

Re: [Xen-devel] [RFC PATCH v1 0/7] IPMMU-VMSA support on ARM

On 26/07/17 16:09, Oleksandr Tyshchenko wrote:
From: Oleksandr Tyshchenko <oleksandr_tyshchenko@xxxxxxxx>

Hi, all.


Please CC maintainers and any relevant person on the cover letter. This is quite useful to have in the inbox.

The purpose of this patch series is to add IPMMU-VMSA support to Xen on ARM.
It is VMSA-compatible IOMMU that integrated in the newest Renesas R-Car Gen3 
SoCs (ARM).
And this IOMMU can't share the page table with the CPU since it doesn't use the 
same page-table format
as the CPU on ARM therefore I name it "Non-shared" IOMMU.
This all means that current patch series must be based on "Non-shared" IOMMU 
support [1]
for the IPMMU-VMSA to be functional inside Xen.

The IPMMU-VMSA driver as well as the ARM LPAE allocator were directly ported 
from BSP for Linux the vendor provides:
git://git.kernel.org/pub/scm/linux/kernel/git/horms/renesas-bsp.git rcar-3.5.3

I think this is probably a good starting point to discuss about IOMMU support in Xen. I skimmed through the patches and saw the words "rfc" and "ported from BSP".

At the moment for IOMMU we rely on the Linux community to do the review, but this is not the case here as it is an RFC. I can definitely help to check if it comply for Xen, but I don't have the competence to tell whether it is valid for the hardware.

We may want to find a compromise to get it merged in Xen, but surely we don't want to build it by default at least until we had feedback from the community about the validity of the code here.

As I mentioned above, we are currently borrowing drivers from Linux and adapting for Xen. Today we support SMMUv{1,2} (we need to resync it) and there are plan to add IPMMU-VMSA (this series) and SMMUv3.

I am aware that Linux IOMMU subsystem has growing quite a lot making more tricky to get support in Xen. I wanted to get feedback how complex from you and Sameer how complex it was and whether we should consider doing our own.

Patch series was rebased on Xen 4.9.0 release and tested on Renesas R-Car Gen3 
H3 ES2.0/M3 based boards
with devices assigned to different domains.

You can find patch series here:
repo: https://github.com/otyshchenko1/xen.git branch: ipmmu_v2

P.S. There is one more patch which needs to be brought back to life [2]
Any reasons why this patch hasn't been upstremed yet?

The series didn't make it upstream. Feel free to resend it separately.

Thank you.

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

[2] [Xen-devel] [PATCH v8 02/28] xen: Add log2 functionality

Oleksandr Tyshchenko (7):
  iommu/arm: ipmmu-vmsa: Add IPMMU-VMSA support
  iommu/arm: ipmmu-vmsa: Add Xen changes for main driver
  iommu/arm: ipmmu-vmsa: Add io-pgtables support
  iommu/arm: ipmmu-vmsa: Add Xen changes for io-pgtables
  iommu/arm: Build IPMMU-VMSA related stuff
  iommu/arm: ipmmu-vmsa: Deallocate page table asynchronously
  iommu/arm: ipmmu-vmsa: Enable VMSAv8-64 mode if IPMMU HW supports it

 xen/drivers/passthrough/arm/Makefile         |    3 +
 xen/drivers/passthrough/arm/io-pgtable-arm.c | 1331 +++++++++++++
 xen/drivers/passthrough/arm/io-pgtable.c     |   91 +
 xen/drivers/passthrough/arm/io-pgtable.h     |  220 +++
 xen/drivers/passthrough/arm/ipmmu-vmsa.c     | 2611 ++++++++++++++++++++++++++
 5 files changed, 4256 insertions(+)
 create mode 100644 xen/drivers/passthrough/arm/io-pgtable-arm.c
 create mode 100644 xen/drivers/passthrough/arm/io-pgtable.c
 create mode 100644 xen/drivers/passthrough/arm/io-pgtable.h
 create mode 100644 xen/drivers/passthrough/arm/ipmmu-vmsa.c


Julien Grall

Xen-devel mailing list



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