On Mon, Jul 26, 2021 at 02:50:48PM +1000, David Gibson wrote: > That said, I'm still finding the various ways a device can attach to > an ioasid pretty confusing. Here are some thoughts on some extra > concepts that might make it easier to handle [note, I haven't thought > this all the way through so far, so there might be fatal problems with > this approach]. I think you've summarized how I've been viewing this problem. All the concepts you pointed to should show through in the various APIs at the end, one way or another. How much we need to expose to userspace, I don't know. Does userspace need to care how the system labels traffic between DMA endpoint and the IOASID? At some point maybe yes since stuff like PASID does leak out in various spots > /dev/iommu would work entirely (or nearly so) in terms of endpoint > handles, not device handles. Endpoints are what get bound to an IOAS, > and endpoints are what get the user chosen endpoint cookie. While an accurate modeling of groups, it feels like an overcomplication at this point in history where new HW largely doesn't need it. The user interface VFIO and others presents is device centric, inserting a new endpoint object is going going back to some kind of group centric view of the world. I'd rather deduce the endpoint from a collection of devices than the other way around... Jason