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

From: Ethan Zhao
Date: Wed Jan 17 2024 - 21:26:32 EST



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