diff --git a/lib/env_dpdk/pci.c b/lib/env_dpdk/pci.c index 74859f33a..14e1f0153 100644 --- a/lib/env_dpdk/pci.c +++ b/lib/env_dpdk/pci.c @@ -233,6 +233,13 @@ pci_device_rte_dev_event(const char *device_name, TAILQ_FOREACH(dev, &g_pci_devices, internal.tailq) { struct rte_pci_device *rte_dev = dev->dev_handle; + /* Note: these ERRLOGs are useful for triaging issue #2983. */ + if (dev->internal.pending_removal || dev->internal.removed) { + SPDK_ERRLOG("Received event for device SPDK already tried to remove\n"); + SPDK_ERRLOG("pending_removal=%d removed=%d\n", dev->internal.pending_removal, + dev->internal.removed); + } + if (strcmp(dpdk_pci_device_get_name(rte_dev), device_name) == 0 && !dev->internal.pending_removal) { can_detach = !dev->internal.attached;