Re: [RFC PATCH v10 0/5] fix vt-d hard lockup when hotplug ATS capable device

Ethan Zhao
2024-01-18T02:26:20Z

On 1/18/2024 8:46 AM, Baolu Lu wrote:
> On 1/17/24 5:00 PM, Ethan Zhao wrote:
>> +       /*
>> +        * If the ATS invalidation target device is gone this moment
>> (surprise
>> +        * removed, died, no response) don't try this request again.
>> this
>> +        * request will not get valid result anymore. but the request
>> was
>> +        * already submitted to hardware and we predict to get a ITE in
>> +        * followed batch of request, if so, it will get handled then.
>> +        */
>> +       if (target_pdev && !pci_device_is_present(target_pdev))
>> +               return -EINVAL;
>
> Again, we should not ignore the error triggered by the current request.
> Do not leave it to the next one. The WAIT descriptor is a fence. Handle
> everything within its boundary.

We didn't set fence bit to every ATS invalidation wait descriptor,

only the intel_drain_pasid_prq() queue a drain page requests with FN

sit, but that is not called in hotplug removal path.

Thanks,

Ethan

>
> Best regards,
> baolu