On 2021-07-08 09:08, Joerg Roedel wrote:
On Wed, Jul 07, 2021 at 01:00:13PM -0700, Doug Anderson wrote:
a) Nothing is inherently broken with my current approach.
b) My current approach doesn't make anybody terribly upset even if
nobody is totally in love with it.
Well, no, sorry :)
I don't think it is a good idea to allow drivers to opt-out of the
strict-setting. This is a platform or user decision, and the driver
should accept whatever it gets.
So the real question is still why strict is the default setting and how
to change that.
It's occurred to me whilst hacking on the relevant area that there's an
important point I may have somewhat glossed over there: most of the
IOMMU drivers that are used for arm64 do not take advantage of
non-strict mode anyway. If anything it would be detrimental, since
iommu-dma would waste a bunch of time and memory managing flush queues
and firing off the batch invalidations while internally the drivers are
still invalidating each unmap synchronously.
Those IOMMUs in mobile and embedded SoCs are also mostly used for media
devices, where the buffers are relatively large and change relatively
infrequently, so they are less likely to gain significantly from
supporting non-strict mode. It's primarily the Arm SMMUs which get used
in the more "x86-like" paradigm (especially in larger systems) of being
stuck in front of everything including networking/storage/PCIe/etc.
where the workloads are far more varied.
Robin.
Or document for the users that want performance how to
change the setting, so that they can decide.
Regards,
Joerg
_______________________________________________
iommu mailing list
iommu@xxxxxxxxxxxxxxxxxxxxxxxxxx
https://lists.linuxfoundation.org/mailman/listinfo/iommu