Bug 735048
| Summary: | USB3 device attached to a USB3 hub, fail to unregister when USB3 hub plug out. | ||
|---|---|---|---|
| Product: | Red Hat Enterprise Linux 6 | Reporter: | WANG Chao <chaowang> |
| Component: | kernel | Assignee: | Don Zickus <dzickus> |
| Status: | CLOSED ERRATA | QA Contact: | WANG Chao <chaowang> |
| Severity: | medium | Docs Contact: | |
| Priority: | medium | ||
| Version: | 6.2 | CC: | arozansk, chaowang, czhang, ruyang |
| Target Milestone: | rc | ||
| Target Release: | --- | ||
| Hardware: | All | ||
| OS: | Linux | ||
| Whiteboard: | |||
| Fixed In Version: | kernel-2.6.32-206.el6 | Doc Type: | Bug Fix |
| Doc Text: | Story Points: | --- | |
| Clone Of: | Environment: | ||
| Last Closed: | 2011-12-06 14:27:51 UTC | Type: | --- |
| Regression: | --- | Mount Type: | --- |
| Documentation: | --- | CRM: | |
| Verified Versions: | Category: | --- | |
| oVirt Team: | --- | RHEL 7.3 requirements from Atomic Host: | |
| Cloudforms Team: | --- | Target Upstream Version: | |
| Embargoed: | |||
| Bug Depends On: | |||
| Bug Blocks: | 738147, 738151, 814315 | ||
Change topology to USB3 root hub -> USB3 hub -> USB2 device, works correctly. And also test with USB3 root hub -> USB2 hub -> USB2/3 device, works correctly Hi Chao, I put together a 6.2 kernel with about 18 upstream fixes that should help address this bz and a bunch of the others you have filed. Can you try this when you get a chance to see if you are ok with it. Most of these issues disappeared when I tried this kernel with my setup. Not everything is perfect yet, but the scenarios you described in the bzs should at least be addressed now. You can find the kernel here: http://brewweb.devel.redhat.com/brew/taskinfo?taskID=3626343 Cheers, Don (In reply to comment #3) > Hi Chao, > > I put together a 6.2 kernel with about 18 upstream fixes that should help > address this bz and a bunch of the others you have filed. > > Can you try this when you get a chance to see if you are ok with it. Most of > these issues disappeared when I tried this kernel with my setup. > > Not everything is perfect yet, but the scenarios you described in the bzs > should at least be addressed now. > > You can find the kernel here: > > http://brewweb.devel.redhat.com/brew/taskinfo?taskID=3626343 > > Cheers, > Don Thanks, Don. After times of try, this issue is no longer seen.I think these patches should fix this issue. But this xhci driver still have some problems with usb3 hub. #1.After times of detach/attach usb3 hub (always with usb3 device attached), usb3 device changed to usb2 mode (see it via lsusb -t). #2.After times of detach/attach usb3 hub (always with usb3 device attached), xhci driver died.(means all operations to USB3 root hub is not responded).But usb2 driver still works good. (In reply to comment #4) > #1.After times of detach/attach usb3 hub (always with usb3 device attached), > usb3 device changed to usb2 mode (see it via lsusb -t). > #2.After times of detach/attach usb3 hub (always with usb3 device attached), > xhci driver died.(means all operations to USB3 root hub is not responded).But > usb2 driver still works good. Sounds like another issue we need to open. BTW, when XHCI driver died, did the USB device registered in USB2 mode *automatically*? If so, I suppose #1 and #2 are saying the same thing. Thoughts? (In reply to comment #5) > (In reply to comment #4) > > > #1.After times of detach/attach usb3 hub (always with usb3 device attached), > > usb3 device changed to usb2 mode (see it via lsusb -t). > > #2.After times of detach/attach usb3 hub (always with usb3 device attached), > > xhci driver died.(means all operations to USB3 root hub is not responded).But > > usb2 driver still works good. > > Sounds like another issue we need to open. BTW, when XHCI driver died, did the > USB device registered in USB2 mode *automatically*? If so, I suppose #1 and #2 > are saying the same thing. Thoughts? I have to say, when xhci died, usb3 root hub is not working so that all usb hub/device attach to usb3 root hub will not be responded. So these are two different bugs. But I confirm that ehci/ohci drivers are still alive, and works fine both with usb2 and usb3 device or hub. BTW, I am not sure if we need to open a new bug because these patches are not in our kernel tree yet, besides issues mentioned in comment #4 didn't happen in 193 kernel. Don and Caspar, I opened bug 738147 and bug 738151 to track issues mentioned in comment #4 Have get you CCed. Ok thanks for the feedback Chao. I'll post the patches I have now as they seem to solve a bunch of your bzs. I'll poke at the two new bzs you filed (hopefully I can reproduce it). Thanks, Don Hi Chao, What machine are you using? Is it a Panther Point? There was a recent patch that fixed a warm reset status change problem. It is a simple patch that might work for you. My machine isn't exhibiting your problem. Cheers, Don Hi Chao, I created another brew build that contains a posted upstream patch that adds warm reset to the list of status bits to clear. This is known to fix problems on Panther Point where the xhci controller stops talking with a port because the port doesn't generate any more events due to the fact that the 'warm reset' bit was never cleared from the previous event. http://brewweb.devel.redhat.com/brew/taskinfo?taskID=3635408 I couldn't duplicate your original problem on my end, so I can't vouch if this fix helps with non-Panther Point systems. But it is worth a shot. Cheers, Don (In reply to comment #10) > Hi Chao, > > I created another brew build that contains a posted upstream patch that adds > warm reset to the list of status bits to clear. This is known to fix problems > on Panther Point where the xhci controller stops talking with a port because > the port doesn't generate any more events due to the fact that the 'warm reset' > bit was never cleared from the previous event. > > http://brewweb.devel.redhat.com/brew/taskinfo?taskID=3635408 > > I couldn't duplicate your original problem on my end, so I can't vouch if this > fix helps with non-Panther Point systems. But it is worth a shot. > > Cheers, > Don Hi Don, The machine I used is not Panther Point. It's AMD platform, but USB3 root hub is a TI PCI-E card. # lspci ... 02:00.0 USB Controller: Texas Instruments Device 8241 (rev 02) ... And I will try the newly build kernel in a few days, since this machine is not available for now.Will give you feedback ASAP. This request was evaluated by Red Hat Product Management for inclusion in a Red Hat Enterprise Linux maintenance release. Product Management has requested further review of this request by Red Hat Engineering, for potential inclusion in a Red Hat Enterprise Linux Update release for currently deployed products. This request is not yet committed for inclusion in an Update release. Patch(es) available on kernel-2.6.32-206.el6 Since the problem described in this bug report should be resolved in a recent advisory, it has been closed with a resolution of ERRATA. For information on the advisory, and where to find the updated files, follow the link below. If the solution does not work for you, open a new bug report. http://rhn.redhat.com/errata/RHSA-2011-1530.html |
Description of problem: Attach a USB3 hub to USB3 root hub # lsusb.py -u ... usb8 1d6b:0002 09 2.00 480MBit/s 0mA 1IFs (xhci_hcd 0000:02:00.0) hub usb9 1d6b:0003 09 3.005000MBit/s 0mA 1IFs (xhci_hcd 0000:02:00.0) hub Plug a USB3 storage device into the USB3 hub. # lsusb.py -u ... usb8 1d6b:0002 09 2.00 480MBit/s 0mA 1IFs (xhci_hcd 0000:02:00.0) hub usb9 1d6b:0003 09 3.005000MBit/s 0mA 1IFs (xhci_hcd 0000:02:00.0) hub 9-2 2109:0810 09 3.005000MBit/s 2mA 1IFs (VIA Labs, Inc. 4-Port USB 3.0 Hub) hub 9-2.1 0bc2:50a1 00 3.005000MBit/s 0mA 1IFs (Seagate FA GoFlex Desk NA0JRATK) Plug out the USB3 hub.Now USB3 device still exits incorrectly. # lsusb.py -u ... usb9 1d6b:0003 09 3.005000MBit/s 0mA 1IFs (xhci_hcd 0000:02:00.0) hub 9-2 2109:0810 09 3.005000MBit/s 2mA 1IFs (VIA Labs, Inc. 4-Port USB 3.0 Hub) hub 9-2.1 0bc2:50a1 00 3.005000MBit/s 0mA 1IFs (Seagate FA GoFlex Desk NA0JRATK) dmesg: usb 8-1: new high speed USB device using xhci_hcd and address 3 xhci_hcd 0000:02:00.0: WARN: short transfer on control ep xhci_hcd 0000:02:00.0: WARN: short transfer on control ep usb 8-1: New USB device found, idVendor=2109, idProduct=3431 usb 8-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0 usb 8-1: Product: USB2.0 Hub usb 8-1: configuration #1 chosen from 1 choice hub 8-1:1.0: USB hub found xhci_hcd 0000:02:00.0: WARN: short transfer on control ep hub 8-1:1.0: 4 ports detected usb 9-1: new SuperSpeed USB device using xhci_hcd and address 4 xhci_hcd 0000:02:00.0: WARN: short transfer on control ep xhci_hcd 0000:02:00.0: WARN: short transfer on control ep xhci_hcd 0000:02:00.0: WARN: short transfer on control ep usb 9-1: New USB device found, idVendor=2109, idProduct=0810 usb 9-1: New USB device strings: Mfr=1, Product=2, SerialNumber=0 usb 9-1: Product: 4-Port USB 3.0 Hub usb 9-1: Manufacturer: VIA Labs, Inc. usb 9-1: configuration #1 chosen from 1 choice hub 9-1:1.0: USB hub found hub 9-1:1.0: 4 ports detected usb 9-1.4: new SuperSpeed USB device using xhci_hcd and address 5 xhci_hcd 0000:02:00.0: WARN: short transfer on control ep xhci_hcd 0000:02:00.0: WARN: short transfer on control ep xhci_hcd 0000:02:00.0: WARN: short transfer on control ep xhci_hcd 0000:02:00.0: WARN: short transfer on control ep usb 9-1.4: New USB device found, idVendor=0bc2, idProduct=50a1 usb 9-1.4: New USB device strings: Mfr=2, Product=3, SerialNumber=1 usb 9-1.4: Product: FA GoFlex Desk usb 9-1.4: Manufacturer: Seagate usb 9-1.4: SerialNumber: NA0JRATK usb 9-1.4: configuration #1 chosen from 1 choice scsi7 : SCSI emulation for USB Mass Storage devices usb-storage: device found at 5 usb-storage: waiting for device to settle before scanning usb-storage: device scan complete scsi 7:0:0:0: Direct-Access Seagate FA GoFlex Desk 0D0B PQ: 0 ANSI: 0 sd 7:0:0:0: Attached scsi generic sg2 type 0 sd 7:0:0:0: [sdb] 732566645 4096-byte logical blocks: (3.00 TB/2.72 TiB) xhci_hcd 0000:02:00.0: WARN: Stalled endpoint sd 7:0:0:0: [sdb] Write Protect is off sd 7:0:0:0: [sdb] Mode Sense: 0f 00 00 00 sd 7:0:0:0: [sdb] Assuming drive cache: write through sd 7:0:0:0: [sdb] 732566645 4096-byte logical blocks: (3.00 TB/2.72 TiB) xhci_hcd 0000:02:00.0: WARN: Stalled endpoint sd 7:0:0:0: [sdb] Assuming drive cache: write through sdb: sdb1 sd 7:0:0:0: [sdb] 732566645 4096-byte logical blocks: (3.00 TB/2.72 TiB) xhci_hcd 0000:02:00.0: WARN: Stalled endpoint sd 7:0:0:0: [sdb] Assuming drive cache: write through sd 7:0:0:0: [sdb] Attached SCSI disk sd 7:0:0:0: [sdb] Sense Key : Recovered Error [current] [descriptor] Descriptor sense data with sense descriptors (in hex): 72 01 04 1d 00 00 00 0a 09 0c 00 00 00 00 00 07 00 00 sd 7:0:0:0: [sdb] ASC=0x4 ASCQ=0x1d usb 8-1: USB disconnect, address 3 xhci_hcd 0000:02:00.0: WARN: transfer error on endpoint xhci_hcd 0000:02:00.0: WARN: transfer error on endpoint xhci_hcd 0000:02:00.0: WARN: transfer error on endpoint Version-Release number of selected component (if applicable): 2.6.32-191.el6.x86_64 How reproducible: Almost every time Steps to Reproduce: 1.Attach a USB3 hub to USB3 root hub 2.Plug a USB3 storage device into the USB3 hub. 3.Plug out the USB3 hub. Actual results: USB3 device still there Expected results: USB3 device should be gone. Additional info: USB3 root hub is a TI PCI-E card # lspci 02:00.0 USB Controller: Texas Instruments Device 8241 (rev 02) ---- After a few minutes USB3 device unregister(lsusb shows nothing about it).But dmesg give some errors: (continue with above) xhci_hcd 0000:02:00.0: WARN: transfer error on endpoint xhci_hcd 0000:02:00.0: WARN: transfer error on endpoint xhci_hcd 0000:02:00.0: WARN: transfer error on endpoint usb 9-1.4: USB disconnect, address 5 hub 9-1:1.0: hub_port_status failed (err = -19) hub 9-1:1.0: hub_port_status failed (err = -19) hub 9-1:1.0: hub_port_status failed (err = -19) hub 9-1:1.0: hub_port_status failed (err = -19) hub 9-1:1.0: activate --> -19 usb 9-1: USB disconnect, address 4