Re: [PATCH v5 6/9] iommufd: Fault-capable hwpt attach/detach/replace

Baolu Lu
2024-05-20T02:12:11Z

On 5/15/24 4:43 PM, Tian, Kevin wrote:
>> From: Lu Baolu <baolu.lu@linux.intel.com>
>> Sent: Tuesday, April 30, 2024 10:57 PM
>> +
>> +int iommufd_fault_domain_replace_dev(struct iommufd_device *idev,
>> + struct iommufd_hw_pagetable *hwpt,
>> + struct iommufd_hw_pagetable *old)
>> +{
>> + struct iommu_attach_handle *handle;
>> + int ret;
>> +
>> + if (hwpt->fault)
>> + ret = iommufd_fault_iopf_enable(idev);
>> + else
>> + iommufd_fault_iopf_disable(idev);
>> +
>> + ret = iommu_group_replace_domain(idev->igroup->group, hwpt-
>>> domain);
>> + if (ret)
>> + goto out_cleanup;
>> +
>> + iommufd_auto_response_faults(old, idev);
>> + handle = iommu_attach_handle_get(idev->igroup->group,
>> IOMMU_NO_PASID, 0);
>> + handle->idev = idev;
>
> why is auto response required in replace? new requests can come
> after the auto response anyway...
>
> The user should prepare for faults delivered to the old or new hwpt
> in the transition window.

The current design of replace allows switching between one that is not
IOPF-capable and one that is. This implies that if we switch from an
IOPF-capable hwpt to a non-IOPF-capable one, the response queue needs to
be auto responded.

Best regards,
baolu