On Wed, Oct 02, 2019 at 12:42:42PM -0700, Jacob Pan wrote: > IOASID allocation may rely on platform specific methods. One use case is > that when running in the guest, in order to obtain system wide global > IOASIDs, emulated allocation interface is needed to communicate with the > host. Here we call these platform specific allocators custom allocators. > > Custom IOASID allocators can be registered at runtime and take precedence > over the default XArray allocator. They have these attributes: > > - provides platform specific alloc()/free() functions with private data. > - allocation results lookup are not provided by the allocator, lookup > request must be done by the IOASID framework by its own XArray. > - allocators can be unregistered at runtime, either fallback to the next > custom allocator or to the default allocator. > - custom allocators can share the same set of alloc()/free() helpers, in > this case they also share the same IOASID space, thus the same XArray. > - switching between allocators requires all outstanding IOASIDs to be > freed unless the two allocators share the same alloc()/free() helpers. > > Signed-off-by: Jean-Philippe Brucker <jean-phili...@linaro.com> > Signed-off-by: Jacob Pan <jacob.jun....@linux.intel.com> > Link: https://lkml.org/lkml/2019/4/26/462
Reviewed-by: Jean-Philippe Brucker <jean-phili...@linaro.org> _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu