On Fri, Jan 20, 2023 at 11:01:21AM -0600, Kalra, Ashish wrote:
We basically get the RMP #PF from the IOMMU because there is a page size
mismatch between the RMP table and the IOMMU page table. The RMP table's
large page entry has been smashed to 4K PTEs to handle page state change to
shared on 4K mappings, so this change has to be synced up with the IOMMU
page table, otherwise there is now a page size mismatch between RMP table
and IOMMU page table which causes the RMP #PF.
I understand that, you haven't answered my question:
Why is the IOMMU being programmed with pages it cannot access in the
first place?
Don't do that is the obvious solution there, and preserves huge page
IO performance.
Jason