> From: Jacob Pan <jacob.jun.pan@xxxxxxxxxxxxxxx> > Sent: Wednesday, June 1, 2022 1:30 AM > > > > > > In both cases the pasid is stored in the attach data instead of the > > > domain. > > > > So during IOTLB flush for the domain, do we loop through the attach data? Yes and it's required. > > > > DMA API pasid is no special from above except it needs to allow > > > one device attached to the same domain twice (one with RID > > > and the other with RID+PASID). > > > > > > for iommufd those operations are initiated by userspace via > > > iommufd uAPI. > > > > My understanding is that device driver owns its PASID policy. If ENQCMD > > is supported on the device, the PASIDs should be allocated through > > ioasid_alloc(). Otherwise, the whole PASID pool is managed by the device > > driver. > > > It seems the changes we want for this patchset are: > 1. move ioasid_alloc() from the core to device (allocation scope will be > based on whether ENQCMD is intended or not) yes, and the driver can specify whether the allocation is system-wide or per-device. > 2. store pasid in the attach data > 3. use the same iommufd api to attach/set pasid on its default domain s/iommufd/iommu/