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.
signature.asc
Description: This is a digitally signed message part
