Thread (7 messages) 7 messages, 6 authors, 2026-09-22

Re: arm-smmu-v3 sharing SID

flat view

From: Robin Murphy <robin.murphy@arm.com>
Date: 2023-05-18 11:34:02
Also in: linux-iommu

On 2023-05-18 11:46, Peng Fan wrote:
Hi all,

Current arm-smmu-v3 driver does not support sharing SID,
If there are two devices sharing one SID, the smmu-v3 driver
will report "stream x already in tree".

We have an SOC that using smmu-v3, only supports limited
SIDs. From my understanding, the smmu-v3 hardware
supports SID sharing, but linux driver not support that.
Ugh, we've always hoped that nobody would build such a thing, since SMMUv3 allows for plenty of stream IDs for any reasonable system (Arm's implementations support at least 24 bits), and aliasing at the StreamID level does rather compromise the usefulness.
I would like know is it ok to add support for sharing SID?
Something like to use common rb_add/find, not
smmu-v3 driver local rb tree add/find.
Not sure what you're thinking there - the StreamID tree is still private to the SMMU instance either way, and the existing arm_smmu_find_master() function is ideal for arm_smmu_device_group() to detect aliasing devices and group them appropriately. Then you also need some way to skip updating STEs that have already been touched for a previous device in the group (basically generalising what arm_smmu_install_ste_for_dev() currently does for duplicate StreamIDs owned by one device).

I'm fairly confident in reasoning about this for basic .attach_dev purposes, since I did implement the equivalent for SMMUv2, but I'm not sure I even want to think about what it would mean for SVA, PASIDs and nesting...

Thanks,
Robin.

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help