public inbox for linux-usb@vger.kernel.org
 help / color / mirror / Atom feed
From: incansvl <colin.evans.parkstone@gmail.com>
To: eichest@gmail.com
Cc: francesco.dolcini@toradex.com, gregkh@linuxfoundation.org,
	linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org,
	stable@vger.kernel.org, stefan.eichenberger@toradex.com,
	stern@rowland.harvard.edu
Subject: Re: [PATCH v1] usb: core: fix pipe creation for get_bMaxPacketSize0
Date: Wed, 5 Mar 2025 22:02:15 +0000	[thread overview]
Message-ID: <857c8982-f09f-4788-b547-1face254946d@gmail.com> (raw)
In-Reply-To: <Z6HxHXrmeEuTzE-c@eichest-laptop>

Team,

     I am experiencing a problem on multiple versions of the 6.x kernel, where initialisation
of a motherboard usb hub device fails and causes a stream of errors. The performance of the
machine is badly affected.

I would have considered this most likely a hardware fault except-

1) I am seeing the same issue on 2 machines of very different age and spec.
2) In each case the hub generating errors has no external devices connected to it, so
    the error can't be caused by an external device that has failed. In fact on
    "machine 2", having no devices plugged in seems to be a necessary condition for the
    error to occur (see details below).

I found the discussion of this patch, but I am not clear about this description-

> > When usb_control_msg is used in the get_bMaxPacketSize0 function, the > > USB pipe does not include the endpoint device number. This can 
cause > > failures when a usb hub port is reinitialized after 
encountering a bad > > cable connection. As a result, the system logs 
the following error > > messages: > > usb usb2-port1: cannot reset (err 
= -32) > > usb usb2-port1: Cannot enable. Maybe the USB cable is bad? > 
 > usb usb2-port1: attempt power cycle > > usb 2-1: new high-speed USB 
device number 5 using ci_hdrc > > usb 2-1: device descriptor read/8, 
error -71 If this is saying that ALL of these error messages will be issued for each "bad" port,
that is not what i'm seeing, and I might have a new issue to report.

However if the description above means that ANY ONE OF these errors might be issued, and
that single error will be consistent and repeatable for a specific kernel+hardware combo,
then that is consistent with the problem I am seeing.

I have included more information below to help determine if this IS the same issue or not.
If it is not the same issue, and not yours to look into, I would appreciate your steer on
which maintainer + mailing list to forward it to.

Regards: Incans


------------------------ Additional Info ------------------------

Symptoms
--------

1) From boot, the console then dmesg show repeated messages of the form:

        |usb usb2-port3: Cannot enable. Maybe the USB cable is bad?|

|2) Performance is badly affected. Boot and login times can be 10x or 
more slower than a comparable (in fact slower) machine running a 5.x 
kernel. Desktop Environment (KDE Plasma) performance and stability are 
both impacted. E.g. in KDE panel widgets can stop updating requiring a 
plasmashell (Wayland) restart 3) A "canary" command to show the error is 
lsusb. This will show symptoms like- * lsusb run as root (sudo) can be 
30-100x slower than when run as normal user * A variant such as "lsusb 
-t" might sidestep the performance problem and run in a 'sane' amount of 
time |

4) On both machines the errors relate to a USB root hub that has NO DEVICES connected to it.
    On "machine 2", having a powered USB3.0 hub (which has a number of downstream devices
    connected) plugged in to one port on the hub is enough to suppress the errors, although
    I note the that "bad" port number (hub 2 : port 3) is not enumerated (skipped?).


Software Versions
-----------------
I have seen the same errors in:

OS: KDE neon 6.3 (Wayland)                       Kernel: 6.11.0-17-generic (64-bit)
OS: EndeavourOS (2025-03-05)(KDE 6.3.2 Wayland)  Kernel: 6.13.5-arch1-1 (64-bit)
OS: EndeavourOS (2025-03-05)(KDE 6.3.2 Wayland)  Kernel: linux-lts 6.12.17-1


Hardware
--------

*Machine 1*
Processors: Intel® i7-6700K 4 Core 8 Thread @ 4.60GHz
Memory: 32 GiB RAM
GPU: AMD Radeon RX 6700 XT
Motherboard: Gigabyte Z170X-GamingG1
Primary Disk: Orico 4TB NVME (Gen4 but limited to Gen 2 by motherboard)

*Machine 2*
Processors: AMD Ryzen 7 7700 8 Core 16 Thread @ 5.3GHz
Memory: 32 GiB RAM
GPU: AMD Radeon RX 6700 XT
Motherboard: ASRock B650 LiveMixer
Primary Disk: Orico 4TB NVME (Gen4, motherboard supports up to Gen 5)


Example (Taken from Machine 1 while the problem is active)
----------------------------------------------------------

$ sudo -s
[root@EdeavourOS admin]# time lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 045b:0209 Hitachi, Ltd
Bus 001 Device 003: ID 045b:0209 Hitachi, Ltd
Bus 001 Device 004: ID 045e:07f8 Microsoft Corp. Wired Keyboard 600
(model 1576)
Bus 001 Device 005: ID 0cf3:e300 Qualcomm Atheros Communications QCA61x4
Bluetooth 4.0
Bus 001 Device 006: ID 045e:00cb Microsoft Corp. Basic Optical Mouse v2.0
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 002 Device 002: ID 045b:0210 Hitachi, Ltd
Bus 003 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 004 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub

real    0m22.861s
user    0m0.031s
sys     0m0.013s


[root@EdeavourOS admin]# time lsusb -t
/:  Bus 001.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/16p, 480M
     |__ Port 003: Dev 002, If 0, Class=Hub, Driver=hub/4p, 480M
         |__ Port 001: Dev 004, If 0, Class=Human Interface Device,
Driver=usbhid, 1.5M
         |__ Port 001: Dev 004, If 1, Class=Human Interface Device,
Driver=usbhid, 1.5M
         |__ Port 002: Dev 006, If 0, Class=Human Interface Device,
Driver=usbhid, 1.5M
     |__ Port 004: Dev 003, If 0, Class=Hub, Driver=hub/4p, 480M
     |__ Port 013: Dev 005, If 0, Class=Wireless, Driver=btusb, 12M
     |__ Port 013: Dev 005, If 1, Class=Wireless, Driver=btusb, 12M
/:  Bus 002.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/10p, 5000M
     |__ Port 004: Dev 002, If 0, Class=Hub, Driver=hub/4p, 5000M
/:  Bus 003.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/2p, 480M
/:  Bus 004.Port 001: Dev 001, Class=root_hub, Driver=xhci_hcd/2p, 10000M

real    0m0.024s
user    0m0.013s
sys     0m0.011s


(tail of "dmesg -w")
[  781.020436] usb usb2-port3: Cannot enable. Maybe the USB cable is bad?
[  784.990637] usb usb2-port3: Cannot enable. Maybe the USB cable is bad?
[  788.960543] usb usb2-port3: Cannot enable. Maybe the USB cable is bad?
[  792.933684] usb usb2-port3: Cannot enable. Maybe the USB cable is bad?
[  796.906907] usb usb2-port3: Cannot enable. Maybe the USB cable is bad?
[  800.883545] usb usb2-port3: Cannot enable. Maybe the USB cable is bad?
[  804.863692] usb usb2-port3: Cannot enable. Maybe the USB cable is bad?
[  808.840075] usb usb2-port3: Cannot enable. Maybe the USB cable is bad?
[  812.810130] usb usb2-port3: Cannot enable. Maybe the USB cable is bad?
[  816.790281] usb usb2-port3: Cannot enable. Maybe the USB cable is bad?
[  820.783424] usb usb2-port3: Cannot enable. Maybe the USB cable is bad?
[  824.760157] usb usb2-port3: Cannot enable. Maybe the USB cable is bad?
[  828.730143] usb usb2-port3: Cannot enable. Maybe the USB cable is bad?



  reply	other threads:[~2025-03-05 22:02 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-02-03 10:58 [PATCH v1] usb: core: fix pipe creation for get_bMaxPacketSize0 Stefan Eichenberger
2025-02-03 16:02 ` Alan Stern
2025-02-04 10:51   ` Stefan Eichenberger
2025-03-05 22:02     ` incansvl [this message]
2025-03-06 13:44       ` Alan Stern
     [not found]         ` <cf6c9693-49ae-4511-8f16-30168567f877@gmail.com>
2025-03-06 21:43           ` Alan Stern
2025-03-08 23:19             ` Colin Evans
2025-03-09 21:01               ` Alan Stern
2025-03-09 21:57                 ` Colin Evans
2025-03-10  1:20                   ` Alan Stern

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=857c8982-f09f-4788-b547-1face254946d@gmail.com \
    --to=colin.evans.parkstone@gmail.com \
    --cc=eichest@gmail.com \
    --cc=francesco.dolcini@toradex.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-usb@vger.kernel.org \
    --cc=stable@vger.kernel.org \
    --cc=stefan.eichenberger@toradex.com \
    --cc=stern@rowland.harvard.edu \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox