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