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.si...@arm.com>
---
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