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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 




On 1/18/2024 10:26 AM, Ethan Zhao wrote:

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.

So, in fact so far, it doesn't act as a fence except the intel_drain_pasid_prq() ,

and it never handle everthing within its border.


Thanks,

Ethan



Thanks,

Ethan




Best regards,
baolu





[Index of Archives]     [DMA Engine]     [Linux Coverity]     [Linux USB]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Greybus]

  Powered by Linux