summaryrefslogtreecommitdiff
path: root/tools/perf/scripts/python/exported-sql-viewer.py
diff options
context:
space:
mode:
authorKeith Busch <kbusch@kernel.org>2025-03-07 01:25:57 +0300
committerKeith Busch <kbusch@kernel.org>2025-03-10 19:15:48 +0300
commit3f674e7b670b7b7d9261935820e4eba3c059f835 (patch)
tree140d8d558e97d316790fab6447413b09554c517d /tools/perf/scripts/python/exported-sql-viewer.py
parente7112524e5e885181cc5ae4d258f33b9dbe0b907 (diff)
downloadlinux-3f674e7b670b7b7d9261935820e4eba3c059f835.tar.xz
nvme-pci: fix stuck reset on concurrent DPC and HP
The PCIe error handling has the nvme driver quiesce the device, attempt to restart it, then wait for that restart to complete. A PCIe DPC event also toggles the PCIe link. If the slot doesn't have out-of-band presence detection, this will trigger a pciehp re-enumeration. The error handling that calls nvme_error_resume is holding the device lock while this happens. This lock blocks pciehp's request to disconnect the driver from proceeding. Meanwhile the nvme's reset can't make forward progress because its device isn't there anymore with outstanding IO, and the timeout handler won't do anything to fix it because the device is undergoing error handling. End result: deadlocked. Fix this by having the timeout handler short cut the disabling for a disconnected PCIe device. The downside is that we're relying on an IO timeout to clean up this mess, which could be a minute by default. Tested-by: Nilay Shroff <nilay@linux.ibm.com> Reviewed-by: Nilay Shroff <nilay@linux.ibm.com> Signed-off-by: Keith Busch <kbusch@kernel.org>
Diffstat (limited to 'tools/perf/scripts/python/exported-sql-viewer.py')
0 files changed, 0 insertions, 0 deletions