> From: Lu Baolu [mailto:baolu...@linux.intel.com] > Sent: Tuesday, October 23, 2018 2:57 PM > > Hi, > > On 10/22/18 6:22 PM, Raj, Ashok wrote: > > On Mon, Oct 22, 2018 at 12:49:47PM +0800, Lu Baolu wrote: > >> Hi, > >> > >> On 10/20/18 2:11 AM, Jean-Philippe Brucker wrote: > >>> Some devices might support multiple DMA address spaces, in particular > >>> those that have the PCI PASID feature. PASID (Process Address Space ID) > >>> allows to share process address spaces with devices (SVA), partition a > >>> device into VM-assignable entities (VFIO mdev) or simply provide > >>> multiple DMA address space to kernel drivers. Add a global PASID > >>> allocator usable by different drivers at the same time. Name it I/O ASID > >>> to avoid confusion with ASIDs allocated by arch code, which are usually > >>> a separate ID space. > >>> > >>> The IOASID space is global. Each device can have its own PASID space, > >>> but by convention the IOMMU ended up having a global PASID space, > so > >>> that with SVA, each mm_struct is associated to a single PASID. > >>> > >>> The allocator doesn't really belong in drivers/iommu because some > >>> drivers would like to allocate PASIDs for devices that aren't managed by > >>> an IOMMU, using the same ID space as IOMMU. It doesn't really > belong in > >>> drivers/pci either since platform device also support PASID. Add the > >>> allocator in drivers/base. > >> > >> One concern of moving pasid allocator here is about paravirtual > >> allocation of pasid. > >> > >> Since there is only a single set of pasid tables which is controlled by > > > > Minor correction: Single system wide PASID namespace, but PASID tables > > would be created ideally per-bdf for isolation purposes. > > > > I'm sure you meant name space, but didn't want that to be mis- > interpreted. > > Yes, confirmed. >
Above essentially means that multiple IOASID allocators may exist. There needs a way for IOMMU driver to choose which one to use, e.g. for current two usages the core allocator will be used on host and also in VM (non-VTd cases), and pv allocator will be used in VM w/ virtual VTd. Thanks Kevin _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu