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

Re: [XEN PATCH v1] xen/arm : Add support for SMMUv3 driver



Hi Rahul,

Thank you for the contribution. Lets make sure this attempt to SMMUv3 support in Xen will be more successful than the other one :).

I haven't reviewed the code yet, but I wanted to provide feedback on the commit message.

On 20/10/2020 16:25, Rahul Singh wrote:
Add support for ARM architected SMMUv3 implementations. It is based on
the Linux SMMUv3 driver.

Major differences between the Linux driver are as follows:
1. Only Stage-2 translation is supported as compared to the Linux driver
    that supports both Stage-1 and Stage-2 translations.
2. Use P2M  page table instead of creating one as SMMUv3 has the
    capability to share the page tables with the CPU.
3. Tasklets is used in place of threaded IRQ's in Linux for event queue
    and priority queue IRQ handling.

Tasklets are not a replacement for threaded IRQ. In particular, they will have priority over anything else (IOW nothing will run on the pCPU until they are done).

Do you know why Linux is using thread. Is it because of long running operations?

4. Latest version of the Linux SMMUv3 code implements the commands queue
    access functions based on atomic operations implemented in Linux.

Can you provide more details?

    Atomic functions used by the commands queue access functions is not
    implemented in XEN therefore we decided to port the earlier version
    of the code. Once the proper atomic operations will be available in XEN
    the driver can be updated.

Signed-off-by: Rahul Singh <rahul.singh@xxxxxxx>
---
  xen/drivers/passthrough/Kconfig       |   10 +
  xen/drivers/passthrough/arm/Makefile  |    1 +
  xen/drivers/passthrough/arm/smmu-v3.c | 2847 +++++++++++++++++++++++++
  3 files changed, 2858 insertions(+)

This is quite significant patch to review. Is there any way to get it split (maybe a verbatim Linux copy + Xen modification)?

Cheers,

--
Julien Grall



 


Rackspace

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