MSIs in Guest OSs on arm64

Session information has not yet been published for this event.


One Line Summary

Discussion around MSI generation and routing for devices passed through to KVM guests on arm64 machines.


Unlike x86, MSIs on ARM-based machines are typically translated as normal memory transactions by the SMMU. This places an additional burden on Linux, since the doorbell address must be mapped in the address space of each device in order for MSIs to be delivered correctly. Furthermore, devices passed through using VFIO require some portion of the guest address space to be reserved by userspace (QEMU) in order to avoid a mapping collision between the doorbell and guest physical memory.

There are patches from Eric Auger kicking around on the mailing list which aim to solve at least some of these issues, but progress is slow and opinions divided on the best approach. A face-to-face session should help us get to the bottom of the problem and make some quicker progress to enabling this crucial feature for arm64. In particular, getting broad agreement on the user ABI would be a significant step forward.


vfio pci msi kvm arm64 iommu


  • Biography

    arm64 co-maintainer and maintainer of ARM perf, SMMU and generic PCI host controller drivers. Unhealthy interest in memory ordering.