Using IOMMUs for more than just translation

This proposal has been rejected.


One Line Summary

IOMMUs can offer services other than address translation. Do we need to support this in Linux? What are the use-cases?


I’ve heard about people using IOMMUs for things like modifying the memory type of memory transactions (e.g. changing non-cacheable transactions to cacheable), without needing to set up page tables etc.

This would be a good opportunity to talk to vendors about how they are using these sort of features and whether or not we should extend the IOMMU core API to support such features.