On Fri, Aug 06, 2021 at 09:32:11AM -0300, Jason Gunthorpe wrote: > On Fri, Aug 06, 2021 at 02:45:26PM +1000, David Gibson wrote: > > > Well, that's kind of what I'm doing. PCI currently has the notion of > > "default" address space for a RID, but there's no guarantee that other > > buses (or even future PCI extensions) will. The idea is that > > "endpoint" means exactly the (RID, PASID) or (SID, SSID) or whatever > > future variations are on that. > > This is already happening in this proposal, it is why I insisted that > the driver facing API has to be very explicit. That API specifies > exactly what the device silicon is doing. > > However, that is placed at the IOASID level. There is no reason to > create endpoint objects that are 1:1 with IOASID objects, eg for > PASID. They're not 1:1 though. You can have multiple endpoints in the same IOAS, that's the whole point. > We need to have clear software layers and responsibilities, I think > this is where the VFIO container design has fallen behind. > > The device driver is responsible to delcare what TLPs the device it > controls will issue Right.. and I'm envisaging an endpoint as a abstraction to represent a single TLP. > The system layer is responsible to determine how those TLPs can be > matched to IO page tables, if at all > > The IO page table layer is responsible to map the TLPs to physical > memory. > > Each must stay in its box and we should not create objects that smush > together, say, the device and system layers because it will only make > a mess of the software design. I agree... and endpoints are explicitly an attempt to do that. I don't see how you think they're smushing things together. > Since the system layer doesn't have any concrete objects in our > environment (which is based on devices and IO page tables) it has to > exist as metadata attached to the other two objects. Whereas I'm suggesting clarifying this by *creating* concrete objects to represent the concept we need. -- David Gibson | I'll have my music baroque, and my code david AT gibson.dropbear.id.au | minimalist, thank you. NOT _the_ _other_ | _way_ _around_! http://www.ozlabs.org/~dgibson
Attachment:
signature.asc
Description: PGP signature