riscv / riscv-aia

https://jira.riscv.org/browse/RVG-59
Creative Commons Attribution 4.0 International
81 stars 19 forks source link

About the possibility of IOMMU examining ie bit before sending notify MSI. #75

Open zhuotianshu opened 8 months ago

zhuotianshu commented 8 months ago

On page 86:

The interrupt-pending and interrupt-enable bits are stored interleaved by doublewords within an MRIF to facilitate the possibility of an IOMMU examining the relevant enable bit to determine whether to send a notice MSI after updating a pending bit, rather than the default behavior of always sending a notice MSI after an update without regard for the interrupt-enable bits. The memory arrangement matters only when MRIFs are supported without atomic update.

I don't understand the last sentence. In my understand, if supported without atomic update, IOMMU can't specify the interrupt enable state at the time it update the interrupt pending state. Also, when supported with atomic update, if ip and ie bits of a interrupt are far from each other, IOMMU can't do this too. So in my undersatand, the interleaving of ie and ip array is only matter for IOMMU with atomic support, while it is always impossible for IOMMU without atomic support to examine the relevant enable bit to determine whether to send a notice MSI after updating a pending bit.