arm-smmu-v3 sharing SID

Peng Fan peng.fan at nxp.com
Thu May 18 04:44:56 PDT 2023


> Subject: Re: arm-smmu-v3 sharing SID
> 
> 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.

We only support max 64 SIDs. So I am thinking to share SID, since we
have lots of dma channels.

> 
> > 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).

Thanks for sharing insights. BTW, would you plan to add the support?

> 
> 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...

Smmu-v3 is a bit new to me, I have not look into it so far (:
If you could help, I would be appreciated. 

Thanks,
Peng.
> 
> Thanks,
> Robin.


More information about the linux-arm-kernel mailing list