lkml.org 
[lkml]   [2023]   [Mar]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH v2 08/16] iommu: define and export iommu_access_remote_vm()
    From
    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

    \
     
     \ /
      Last update: 2023-03-27 00:48    [W:3.406 / U:0.068 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site