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