On 12/11/25 12:49, Mark Burton wrote:
Adding the as to CPUTLBEntryFull is unnecessary because
(1) Each CPUTLB, and thus each CPUTLBEntryFull, is private to the cpu.
(2) Each CPUTLBEntryFull contains the MemTxAttrs for the access.
Thus the AddressSpace is purely a function of (cpu, attrs).
The issue is, it would seem, it is also a function of the lookup provided by an
IOMMU access - that kindly provides an address space independent of any CPU.
No, it really isn't.
Because you think that, it seems like you're doing something wrong with IOMMU accesses.
Since I don't know the wider context of the query means I don't know how to help you further.
My shot in the dark: there is a flush that's supposed to happen for changes to a cpu's
address space. There are plenty of ways in which this happens, e.g. x86 a20 translation
line and pci bar changes. I forget the exact details when it comes to IOMMU, but there
must be something related when translations change. The actual tcg flush will happen via
the MemoryListener interface.
r~