Re: [PATCH v2 08/16] iommu: define and export iommu_access_remote_vm()

From: Christoph Hellwig
Date: Mon Mar 20 2023 - 09:35:33 EST


On Tue, Mar 07, 2023 at 09:55:28AM -0800, Fenghua Yu wrote:
> >
> > I don't quite follow here. Isn't I/O page fault already supported?
>
> The following patch 9 in this series explains in details why IDXD device
> cannot use page fault to write to user memory: https://lore.kernel.org/dmaengine/20230306163138.587484-10-fenghua.yu@xxxxxxxxx/
>
> "DSA supports page fault handling through PRS. However, the DMA engine
> that's processing the descriptor is blocked until the PRS response is
> received. Other workqueues sharing the engine are also blocked.
> Page fault handing by the driver with PRS disabled can be used to
> mitigate the stalling.
>
> With PRS disabled while ATS remain enabled, DSA handles page faults on
> a completion record by reporting an event in the event log. In this
> instance, the descriptor is completed and the event log contains the
> completion record address and the contents of the completion record."

This seems like a completely broken I/O model, and I don't think Linux
should support this model when it requires operations like
access_remote_vm.