Messages in this thread | | | Date | Tue, 28 Jun 2022 20:18:16 +0800 | Subject | Re: [PATCH v9 10/11] iommu: Per-domain I/O page fault handling | From | Baolu Lu <> |
| |
On 2022/6/28 18:02, Tian, Kevin wrote: >> From: Jean-Philippe Brucker <jean-philippe@linaro.org> >> Sent: Tuesday, June 28, 2022 5:44 PM >> >> On Tue, Jun 28, 2022 at 08:39:36AM +0000, Tian, Kevin wrote: >>>> From: Lu Baolu <baolu.lu@linux.intel.com> >>>> Sent: Tuesday, June 21, 2022 10:44 PM >>>> >>>> Tweak the I/O page fault handling framework to route the page faults to >>>> the domain and call the page fault handler retrieved from the domain. >>>> This makes the I/O page fault handling framework possible to serve more >>>> usage scenarios as long as they have an IOMMU domain and install a >> page >>>> fault handler in it. Some unused functions are also removed to avoid >>>> dead code. >>>> >>>> The iommu_get_domain_for_dev_pasid() which retrieves attached >> domain >>>> for a {device, PASID} pair is used. It will be used by the page fault >>>> handling framework which knows {device, PASID} reported from the >> iommu >>>> driver. We have a guarantee that the SVA domain doesn't go away during >>>> IOPF handling, because unbind() waits for pending faults with >>>> iopf_queue_flush_dev() before freeing the domain. Hence, there's no >> need >>>> to synchronize life cycle of the iommu domains between the unbind() and >>>> the interrupt threads. >>> >>> I found iopf_queue_flush_dev() is only called in intel-iommu driver. Did >>> I overlook anything? >> >> The SMMU driver will need it as well when we upstream PRI support. >> Currently it only supports stall, and that requires the device driver to >> flush all DMA including stalled transactions *before* calling unbind(), so >> ne need for iopf_queue_flush_dev() in this case. >> > > then it makes sense. Probably Baolu can add this information in the > commit msg so others with similar question can quickly get the > point here.
Sure. Updated.
Best regards, baolu
| |