Messages in this thread | | | Date | Wed, 8 Mar 2023 10:23:48 +0800 | Subject | Re: [PATCH v2 08/16] iommu: define and export iommu_access_remote_vm() | From | Baolu Lu <> |
| |
On 3/8/23 1:55 AM, Fenghua Yu wrote: > Hi, Baolu, > > On 3/6/23 17:41, Baolu Lu wrote: >> On 3/7/23 12:31 AM, Fenghua Yu wrote: >>> Define and export iommu_access_remote_vm() to allow IOMMU related >>> drivers to access user address space by PASID. >>> >>> The IDXD driver would like to use it to write the user's completion >>> record that the hardware device is not able to write to due to user >>> page fault. >> >> 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@intel.com/ > > "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.
Ah! Get your point now. Thanks for the explanation.
> > 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." > > That's why IDXD driver needs this IOMMU's helper > iommu_access_remote_vm() to copy the completion record from event log > buffer to user space. > > Thanks. > > -Fenghua
Best regards, baolu
| |