Hi Marc, 100% ack - Booting with a kernel that does not do a PCI reset yields the following topology: <snip cmd="lspci -vt"> -[0000:00] - +-00.0 Intel Corporation 2nd Generation Core Processor Family DRAM Controller +-02.0 Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller +-16.0 Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 +-19.0 Intel Corporation 82579LM Gigabit Network Connection +-1a.0 Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 +-1b.0 Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller +-1c.0-[02]-- +-1c.1-[03]----00.0 Intel Corporation Centrino Advanced-N 6205 [Taylor Peak] +-1c.3-[05-0c]----00.0 Renesas Technology Corp. uPD720202 USB 3.0 Host Controller +-1c.4-[0d]----00.0 Ricoh Co Ltd MMC/SD Host Controller +-1d.0 Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 +-1f.0 Intel Corporation QM67 Express Chipset Family LPC Controller +-1f.2 Intel Corporation 6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller \-1f.3 Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller </snip> Unplugging and replugging the card (regardless of the kernel version) or booting with a kernel that does the reset leads to the card not being correctly recognized and the problems I have observed. <snip cmd="lspci -vt"> -[0000:00]- +-00.0 Intel Corporation 2nd Generation Core Processor Family DRAM Controller +-02.0 Intel Corporation 2nd Generation Core Processor Family Integrated Graphics Controller +-16.0 Intel Corporation 6 Series/C200 Series Chipset Family MEI Controller #1 +-19.0 Intel Corporation 82579LM Gigabit Network Connection +-1a.0 Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #2 +-1b.0 Intel Corporation 6 Series/C200 Series Chipset Family High Definition Audio Controller +-1c.0-[02]-- +-1c.1-[03]----00.0 Intel Corporation Centrino Advanced-N 6205 [Taylor Peak] +-1c.3-[05-0c]-- +-1c.4-[0d]----00.0 Ricoh Co Ltd MMC/SD Host Controller +-1d.0 Intel Corporation 6 Series/C200 Series Chipset Family USB Enhanced Host Controller #1 +-1f.0 Intel Corporation QM67 Express Chipset Family LPC Controller +-1f.2 Intel Corporation 6 Series/C200 Series Chipset Family 6 port SATA AHCI Controller \-1f.3 Intel Corporation 6 Series/C200 Series Chipset Family SMBus Controller </snip> Cheers Albert :) On Mon, 2017-09-18 at 09:15 +0100, Marc Zyngier wrote: > Hi Albert, > > On 17/09/17 13:39, Albert Weichselbraun wrote: > > Dear all, > > > > I ran into a regression with an ExpressCard/54 USB 3.0 expansion > > card > > that uses the Renesas uPD72020x chipset on a Lenovo X220i Laptop > > (the > > described behavior has been reproduced with kernel versions 4.12.8, > > 4.12.13, 4.13.1 and 4.13.2). > > > > Once booting such a kernel, the system becomes very sluggish with > > considerable mouse pointer delays that are followed by display > > driver > > errors such as > > - pipe A vblank wait timed out > > - pipe B vblank wait timed out > > after some minutes. > > > > Please refer to > > https://weichselbraun.net/tmp/dmesg-pipe-a-vblank-timeout.log > > https://weichselbraun.net/tmp/dmesg-pipe-b-vblank-timeout.log > > for the corresponding log messages. > > > > Removing the expansion card or booting with a pre 4.12.8 kernel > > resolves the issue. > > > > I traced the problem back to the following patch that has been > > introduced in 4.12.8 and seems to force a PCI reset on the device. > > > > [...] > > > What seems to happen on my machine is that the reset fails leaving > > the > > device in an undefined state: > > > > <snip> > > Sep 17 08:35:19 trinity kernel: [ 2.874329] xhci_hcd > > 0000:05:00.0: > > xHCI host controller not responding, assume dead > > Sep 17 08:35:19 trinity kernel: [ 2.874341] xhci_hcd > > 0000:05:00.0: > > remove, state 1 > > Sep 17 08:35:19 trinity kernel: [ 2.874350] usb usb4: USB > > disconnect, device number 1 > > Sep 17 08:35:19 trinity kernel: [ 2.874608] xhci_hcd > > 0000:05:00.0: > > USB bus 4 deregistered > > Sep 17 08:35:19 trinity kernel: [ 2.875433] xhci_hcd > > 0000:05:00.0: > > remove, state 1 > > Sep 17 08:35:19 trinity kernel: [ 2.875440] usb usb3: USB > > disconnect, device number 1 > > Sep 17 08:35:19 trinity kernel: [ 2.875535] clocksource: > > Switched > > to > > clocksource tsc > > Sep 17 08:35:19 trinity kernel: [ 2.875769] xhci_hcd > > 0000:05:00.0: > > Host halt failed, -19 > > Sep 17 08:35:19 trinity kernel: [ 2.875777] xhci_hcd > > 0000:05:00.0: > > Host not accessible, reset failed. > > Sep 17 08:35:19 trinity kernel: [ 2.876148] xhci_hcd > > 0000:05:00.0: > > USB bus 3 deregistered > > </snip> > > > > The full dmesg output is available at > > https://weichselbraun.net/tmp/dmesg-4.13.2-unpatched > > > > Reverting the changes (tested on 4.12.8, 4.13.1 and 4.13.2) solves > > this > > issue on my system. > > https://weichselbraun.net/tmp/dmesg-4.13.2-patched > > > > lspci: > > 05:00.0 USB controller: Renesas Technology Corp. uPD720202 USB > > 3.0 > > Host Controller (rev 02) > > > > Please let me know if there is any additional information I can > > provide > > to help narrowing this down. > > Thanks for the detailed report. > > I wonder if the hotplug nature of the card could be playing some > tricks > on us, and the PCI reset nuking some otherwise important programming > that are relevant to the ExpressCard bridge. > > Do you get the same effect if you're plugging the card after the > system > has booted? Could you please post your full PCI topology (lspci -vt)? > > Thanks, > > M.
Attachment:
signature.asc
Description: This is a digitally signed message part