Messages in this thread | | | From | "Tian, Kevin" <> | Subject | RE: [PATCH v11 14/16] iommu: Track iopf group instead of last fault | Date | Tue, 6 Feb 2024 08:31:51 +0000 |
| |
> From: Lu Baolu <baolu.lu@linux.intel.com> > Sent: Tuesday, January 30, 2024 4:09 PM > > Previously, before a group of page faults was passed to the domain's iopf > handler, the last page fault of the group was kept in the list of > iommu_fault_param::faults. In the page fault response path, the group's > last page fault was used to look up the list, and the page faults were > responded to device only if there was a matched fault. > > The previous approach seems unnecessarily complex and not performance > friendly. Put the page fault group itself to the outstanding fault list. > It can be removed in the page fault response path or in the > iopf_queue_remove_device() path. The pending list is protected by > iommu_fault_param::lock. To allow checking for the group's presence in > the list using list_empty(), the iopf group should be removed from the > list with list_del_init(). > > IOMMU_PAGE_RESP_PASID_VALID is set in the code but not used anywhere. > Remove it to make the code clean. IOMMU_PAGE_RESP_PASID_VALID is set > in the response message indicating that the response message includes > a valid PASID value. Actually, we should keep this hardware detail in > the individual driver. When the page fault handling framework in IOMMU > and IOMMUFD subsystems includes a valid PASID in the fault message, the > response message should always contain the same PASID value. Individual > drivers should be responsible for deciding whether to include the PASID > in the messages they provide for the hardware. > > Signed-off-by: Lu Baolu <baolu.lu@linux.intel.com> > Reviewed-by: Jason Gunthorpe <jgg@nvidia.com> > Tested-by: Yan Zhao <yan.y.zhao@intel.com>
Reviewed-by: Kevin Tian <kevin.tian@intel.com>
| |