On 2021-03-15 08:33, Christoph Hellwig wrote:
On Fri, Mar 12, 2021 at 04:18:24PM +0000, Robin Murphy wrote:
Let me know what you think of the version here:
http://git.infradead.org/users/hch/misc.git/shortlog/refs/heads/iommu-cleanup
I'll happily switch the patch to you as the author if you're fine with
that as well.
I still have reservations about removing the attribute API entirely and
pretending that io_pgtable_cfg is anything other than a SoC-specific
private interface,
I think a private inteface would make more sense. For now I've just
condensed it down to a generic set of quirk bits and dropped the
attrs structure, which seems like an ok middle ground for now. That
being said I wonder why that quirk isn't simply set in the device
tree?
Because it's a software policy decision rather than any inherent
property of the platform, and the DT certainly doesn't know *when* any
particular device might prefer its IOMMU to use cacheable pagetables to
minimise TLB miss latency vs. saving the cache capacity for larger data
buffers. It really is most logical to decide this at the driver level.
In truth the overall concept *is* relatively generic (a trend towards
larger system caches and cleverer usage is about both raw performance
and saving power on off-SoC DRAM traffic), it's just the particular
implementation of using io-pgtable to set an outer-cacheable walk
attribute in an SMMU TCR that's pretty much specific to Qualcomm SoCs.
Hence why having a common abstraction at the iommu_domain level, but
where the exact details are free to vary across different IOMMUs and
their respective client drivers, is in many ways an ideal fit.
but the reworked patch on its own looks reasonable to
me, thanks! (I wasn't too convinced about the iommu_cmd_line wrappers
either...) Just iommu_get_dma_strict() needs an export since the SMMU
drivers can be modular - I consciously didn't add that myself since I was
mistakenly thinking only iommu-dma would call it.
Fixed. Can I get your signoff for the patch? Then I'll switch it to
over to being attributed to you.
Sure - I would have thought that the one I originally posted still
stands, but for the avoidance of doubt, for the parts of commit
8b6d45c495bd in your tree that remain from what I wrote:
Signed-off-by: Robin Murphy <robin.murphy@xxxxxxx>
Cheers,
Robin.
_______________________________________________
Virtualization mailing list
Virtualization@xxxxxxxxxxxxxxxxxxxxxxxxxx
https://lists.linuxfoundation.org/mailman/listinfo/virtualization