Hi Krishna, On 6/24/24 7:09 AM, Krishna Kumar wrote: > There is an issue with the hotplug operation when it's done on the > bridge/switch slot. The bridge-port and devices behind the bridge, which > become offline by hot-unplug operation, don't get hot-plugged/enabled by > doing hot-plug operation on that slot. Only the first port of the bridge > gets enabled and the remaining port/devices remain unplugged. The hot > plug/unplug operation is done by the hotplug driver > (drivers/pci/hotplug/pnv_php.c). > > Root Cause Analysis: This behavior is due to missing code for the > switch/bridge. The existing driver depends on pci_hp_add_devices() > function for device enablement. This function calls pci_scan_slot() on > only one device-node/port of the bridge, not on all the siblings' > device-node/port. > > The missing code needs to be added which will find all the sibling > device-nodes/bridge-ports and will run explicit pci_scan_slot() on > those. A new function has been added for this purpose which gets > invoked from pci_hp_add_devices(). This new function > pci_traverse_sibling_nodes_and_scan_slot() gets all the sibling > bridge-ports by traversal and explicitly invokes pci_scan_slot on them. > > Cc: Michael Ellerman <m...@ellerman.id.au> > Cc: Nicholas Piggin <npig...@gmail.com> > Cc: Christophe Leroy <christophe.le...@csgroup.eu> > Cc: "Aneesh Kumar K.V" <aneesh.ku...@kernel.org> > Cc: Bjorn Helgaas <bhelg...@google.com> > Cc: Gaurav Batra <gba...@linux.ibm.com> > Cc: Nathan Lynch <nath...@linux.ibm.com> > Cc: Brian King <brk...@linux.vnet.ibm.com> > > Signed-off-by: Krishna Kumar <krish...@linux.ibm.com>
Other than the case with NVMe devices failing that we discussed in v1's thread, I can confirm that this patch resolves many of the issues we've encountered with PCIe hotplug on POWER9. Tested-by: Shawn Anastasio <sanasta...@raptorengineering.com> Thanks, Shawn