Bug 204869

Summary: No SuperSpeedPlus on ASM2142
Product: Drivers Reporter: Loïc Yhuel (loic.yhuel)
Component: USBAssignee: Greg Kroah-Hartman (greg)
Status: NEW ---    
Severity: normal CC: mathias.nyman
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: master Subsystem:
Regression: No Bisected commit-id:
Attachments: relevant parts of dmesg
lspci on the ASM2142
lsusb on root hub and device

Description Loïc Yhuel 2019-09-15 17:19:44 UTC
Since https://github.com/torvalds/linux/commit/ddd57980a0fde30f7b5d14b888a2cc84d01610e8, only SuperSpeed is advertised, even if lsusb still shows 10Gb/s support in "SuperSpeedPlus USB Device Capability".

ASUS Prime X399-A with latest BIOS, ASM2142 FW is 170308_70_02_00 (seen with ASM2142A_MPTool on Windows).

xhci->usb3_rhub.min_rev is 0x1 instead of expected 0x10.
SBRN is 0x30.

[    1.008270] xhci_hcd 0000:08:00.0: Host supports USB 3.0 SuperSpeed
...
[    1.333145] usb 4-1: new SuperSpeed Gen 1 USB device number 2 using xhci_hcd
In sysfs, "speed" is 5000 for both root hub and device.
Comment 1 Loïc Yhuel 2019-09-15 17:21:17 UTC
Created attachment 284977 [details]
relevant parts of dmesg
Comment 2 Loïc Yhuel 2019-09-15 17:21:54 UTC
Created attachment 284979 [details]
lspci on the ASM2142
Comment 3 Loïc Yhuel 2019-09-15 17:22:32 UTC
Created attachment 284981 [details]
lsusb on root hub and device
Comment 4 Loïc Yhuel 2019-09-15 17:34:18 UTC
I tried reverting the commit, which changes the reported speed, but doesn't seem to apply since the performance doesn't change.

[    1.009150] xhci_hcd 0000:08:00.0: Host supports USB 3.1 Enhanced SuperSpeed
...
[    1.333149] usb 4-1: new SuperSpeedPlus Gen 2 USB device number 2 using xhci_hcd

The "speed" is sysfs are 10000.

With this device (JSM580 USB to SATA adapter with an SSD), I get :
 - "hdparm -t" of 284MB/s, with or without the revert, or on the AMD controller (Gen 1)
 - 510 MB/s on Windows 10 (default Microsoft xhci drivers) on the ASM2142
 - 260 MB/s on Windows with an old Windows machine (Gen 1 without UAS support)

So while it seems the device has a performance issue on Gen 1 + UAS (but it's the same on Windows and Linux, and on different controllers), Gen 2 works on Windows on the ASM2142, and doesn't seem to on Linux.
Comment 5 Loïc Yhuel 2019-09-15 18:46:11 UTC
After a reboot, the controller is still detected as "USB 3.1 Enhanced SuperSpeed", but devices are detected as Gen 1, so there is something strange with this controller.
Comment 6 Greg Kroah-Hartman 2019-09-15 19:33:41 UTC
On Sun, Sep 15, 2019 at 05:19:44PM +0000, bugzilla-daemon@bugzilla.kernel.org wrote:
> https://bugzilla.kernel.org/show_bug.cgi?id=204869
> 
>             Bug ID: 204869
>            Summary: No SuperSpeedPlus on ASM2142
>            Product: Drivers
>            Version: 2.5
>     Kernel Version: master

All USB bugs should be sent to the linux-usb@vger.kernel.org mailing
list, and not entered into bugzilla.  Please bring this issue up there,
if it is still a problem in the latest kernel release.
Comment 7 Loïc Yhuel 2019-09-16 03:20:48 UTC
(In reply to Greg Kroah-Hartman from comment #6)
> On Sun, Sep 15, 2019 at 05:19:44PM +0000,
> All USB bugs should be sent to the linux-usb@vger.kernel.org mailing
> list, and not entered into bugzilla.  Please bring this issue up there,
> if it is still a problem in the latest kernel release.
Perhaps the "USB" component description here could be edited to tell people to use the mailing list instead.

After having to wait a few hours for Majordomo to respond to the subcribe messages, I posted the report on the mailing list :
https://www.spinics.net/lists/linux-usb/msg185116.html
Comment 8 Greg Kroah-Hartman 2019-09-16 06:25:52 UTC
On Mon, Sep 16, 2019 at 03:20:48AM +0000, bugzilla-daemon@bugzilla.kernel.org wrote:
> After having to wait a few hours for Majordomo to respond to the subcribe
> messages, I posted the report on the mailing list :
> https://www.spinics.net/lists/linux-usb/msg185116.html

No need to subscribe to the list, just send email to it directly.

And majordomo should respond instantly, something might be wrong if it
takes that long.