On Wed, Apr 08, 2020 at 04:04:25PM +0200, Jean-Philippe Brucker wrote:
> The IOMMU SVA API currently requires device drivers to implement an
> mm_exit() callback, which stops device jobs that do DMA. This function
> is called in the release() MMU notifier, when an address space that is
> shared with a device exits.
> 
> It has been noted several time during discussions about SVA that
> cancelling DMA jobs can be slow and complex, and doing it in the
> release() notifier might cause synchronization issues (patch 2 has more
> background). Device drivers must in any case call unbind() to remove
> their bond, after stopping DMA from a more favorable context (release of
> a file descriptor).
> 
> So after mm exits, rather than notifying device drivers, we can hold on
> to the PASID until unbind(), ask IOMMU drivers to silently abort DMA and
> Page Requests in the meantime. This change should relieve the mmput()
> path.

At least all the patch comments look like they are on the right track
to me, thanks for doing this.

Jason
_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

Reply via email to