Re: [PATCH 2/2] iommu/vt-d: don's issue devTLB flush request when device is disconnected

From: Ethan Zhao
Date: Wed Dec 13 2023 - 21:26:21 EST



On 12/13/2023 7:59 PM, Baolu Lu wrote:
On 2023/12/13 11:46, Ethan Zhao wrote:
For those endpoint devices connect to system via hotplug capable ports,
users could request a warm reset to the device by flapping device's link
through setting the slot's link control register, as pciehpt_ist() DLLSC
interrupt sequence response, pciehp will unload the device driver and
then power it off.

Is it possible for pciehp to disable ATS on the device before unloading
the driver? Or should the device follow some specific steps to warm
reset the device?

In this case, link down first, then pciehp_ist() got DLLSC interrupt to know

that, I don't think it makes sense to disable device ATS here, but it could

flag the device is ATS disabled, well,  "disconnected" is enough to let

vt-d like software knows the device state.


What happens if IOMMU issues device TLB invalidation after link down but
before pci_dev_is_disconnected() returns true?

Seems it wouldn't happen with hotplug cases, safe_removal or

supprise_removal.



Thanks,

Ethan


Best regards,
baolu