Hi Eric, On Fri, Nov 11, 2016 at 04:47:01PM +0100, Auger Eric wrote: > Effectively in passthrough use case, the userspace defines the address > space layout and maps guest RAM PA=IOVA to PAs (using > VFIO_IOMMU_MAP_DMA). But this address space does not comprise the MSI > IOVAs. Userspace does not care about MSI IOMMU mapping. So the MSI IOVA > region must be allocated by either the VFIO driver or the IOMMU driver I > think. Who else could initialize the IOVA allocator domain?
So I think we need a way to tell userspace about the reserved regions (per iommu-group) so that userspace knows where it can not map anything, and VFIO can enforce that. But the right struct here is not an iova-allocator rb-tree, a ordered linked list should be sufficient. Joerg