Re: [RFC] pcie hotplug doesn't work with kernel 4.19

From: Lukas Wunner
Date: Wed Sep 16 2020 - 01:48:48 EST


On Tue, Sep 15, 2020 at 04:15:15PM +0200, Jinpu Wang wrote:
> We are testing PCIe nvme SSD hotplug, it works out of box with kernel 5.4.62,
> dmesg during the hotplug:
[...]
> But with kernel 4.19.133, pcieport core doesn't print anything, is
> there known problem with kernel 4.19 support for pcie hotplug, do we
> need to backport some fixes from newer kernel to make it work?

No known problem. Please open a bug on bugzilla.kernel.org and attach
full dmesg output for 5.4.62 and 4.19.133, as well as lspci -vv output.
You may want to add the following to the kernel command line:

ignore_loglevel log_bug_len=10M "dyndbg=file drivers/pci/* +p"
pciehp.pciehp_debug=1


> [ 683.218554] pcieport 0000:16:00.0: pciehp: Slot(0-3): Card present
> [ 683.218555] pcieport 0000:16:00.0: pciehp: Slot(0-3): Link Up
> [ 683.271702] pcieport 0000:16:00.0: pciehp: Timeout on hotplug
> command 0x17e1 (issued 73280 msec ago)
> [ 686.301874] pcieport 0000:16:00.0: pciehp: Timeout on hotplug
> command 0x13e1 (issued 3030 msec ago)
> [ 686.361894] pcieport 0000:16:00.0: pciehp: Timeout on hotplug
> command 0x13e1 (issued 3090 msec ago)

Those timeouts look suspicious. Perhaps the hotplug controller
claims to support Command Completed Support, but in reality does not?


> CONFIG_HOTPLUG_PCI=y
> CONFIG_HOTPLUG_PCI_ACPI=y
> CONFIG_HOTPLUG_PCI_ACPI_IBM=m
> CONFIG_HOTPLUG_PCI_CPCI=y
> CONFIG_HOTPLUG_PCI_CPCI_ZT5550=m
> CONFIG_HOTPLUG_PCI_CPCI_GENERIC=m
> CONFIG_HOTPLUG_PCI_SHPC=y
> CONFIG_HOTPLUG_PCI_PCIE=y

You may not need ACPI_IBM, CPCI, SHPC.

Thanks,

Lukas