Re: uas driver causes errors when connecting devices to USB3

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Wed, Dec 07, 2011 at 09:25:46AM -0500, Chuck Ebbert wrote:
> On Tue, 6 Dec 2011 12:07:20 -0800
> Sarah Sharp <sarah.a.sharp@xxxxxxxxxxxxxxx> wrote:
> 
> > The babble
> > could have been caused by the device, but it also could have been
> > caused by a bad cable as well.  Have you tried swapping the cable or
> > UAS device?
> >
> 
> The bug reporters all say that blacklisting the uas driver makes
> everything work, so I doubt it's the cables.

Ok, the UAS driver just isn't handling the babble then.

> Though one of them keeps getting this over and over even though the
> device works:
> 
>  xhci_hcd 0000:02:00.0: WARN: Stalled endpoint

The message is harmless.  I have a patch to remove it that I haven't
submitted to Greg yet.

> > The last two lines are a bit odd though.  They indicate the xHCI host
> > didn't like the xHCI driver trying to move the dequeue pointer past
> > the transfer that caused the babble.  That shouldn't have been an
> > issue. Getting a transfer event for an incorrect stream ring is also
> > troubling.
> > 
> > What xHCI host are you plugging the UAS device into?  Can you send the
> > lspci -vvv output?
> >
> 
> 02:00.0 USB Controller: NEC Corporation uPD720200 USB 3.0 Host Controller (rev 03) (prog-if 30 [XHCI])
> 	Subsystem: ASUSTeK Computer Inc. P8P67 Deluxe Motherboard
> 	Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR+ FastB2B- DisINTx+
> 	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
> 	Latency: 0, Cache Line Size: 64 bytes
> 	Interrupt: pin A routed to IRQ 17
> 	Region 0: Memory at fe6fe000 (64-bit, non-prefetchable) [size=8K]
> 	Capabilities: [50] Power Management version 3
> 		Flags: PMEClk- DSI- D1- D2- AuxCurrent=375mA PME(D0+,D1-,D2-,D3hot+,D3cold+)
> 		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
> 	Capabilities: [70] MSI: Enable- Count=1/8 Maskable- 64bit+
> 		Address: 0000000000000000  Data: 0000
> 	Capabilities: [90] MSI-X: Enable+ Count=8 Masked-
> 		Vector table: BAR=0 offset=00001000
> 		PBA: BAR=0 offset=00001080
> 	Capabilities: [a0] Express (v2) Endpoint, MSI 00
> 		DevCap:	MaxPayload 128 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
> 			ExtTag- AttnBtn- AttnInd- PwrInd- RBE+ FLReset-
> 		DevCtl:	Report errors: Correctable- Non-Fatal- Fatal- Unsupported-
> 			RlxdOrd- ExtTag- PhantFunc- AuxPwr- NoSnoop+
> 			MaxPayload 128 bytes, MaxReadReq 512 bytes
> 		DevSta:	CorrErr+ UncorrErr- FatalErr- UnsuppReq+ AuxPwr+ TransPend-
> 		LnkCap:	Port #0, Speed 5GT/s, Width x1, ASPM L0s L1, Latency L0 <4us, L1 unlimited
> 			ClockPM+ Surprise- LLActRep- BwNot-
> 		LnkCtl:	ASPM Disabled; RCB 64 bytes Disabled- Retrain- CommClk+
> 			ExtSynch- ClockPM+ AutWidDis- BWInt- AutBWInt-
> 		LnkSta:	Speed 5GT/s, Width x1, TrErr- Train- SlotClk+ DLActive- BWMgmt- ABWMgmt-
> 		DevCap2: Completion Timeout: Not Supported, TimeoutDis+
> 		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-
> 		LnkCtl2: Target Link Speed: 5GT/s, EnterCompliance- SpeedDis-, Selectable De-emphasis: -6dB
> 			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
> 			 Compliance De-emphasis: -6dB
> 		LnkSta2: Current De-emphasis Level: -3.5dB
> 	Capabilities: [100 v1] Advanced Error Reporting
> 		UESta:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> 		UEMsk:	DLP- SDES- TLP- FCP- CmpltTO- CmpltAbrt- UnxCmplt- RxOF- MalfTLP- ECRC- UnsupReq- ACSViol-
> 		UESvrt:	DLP+ SDES+ TLP- FCP+ CmpltTO- CmpltAbrt- UnxCmplt- RxOF+ MalfTLP+ ECRC- UnsupReq- ACSViol-
> 		CESta:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
> 		CEMsk:	RxErr- BadTLP- BadDLLP- Rollover- Timeout- NonFatalErr+
> 		AERCap:	First Error Pointer: 00, GenCap- CGenEn- ChkCap- ChkEn-
> 	Capabilities: [140 v1] Device Serial Number ff-ff-ff-ff-ff-ff-ff-ff
> 	Capabilities: [150 v1] #18
> 	Kernel driver in use: xhci_hcd
> 
> > > xhci_hcd 0000:04:00.0: xHCI xhci_drop_endpoint called with disabled
> > > ep ffff880113706dc0 Jun 29 09:52:11 karryall kernel: [  302.094253]
> > > xhci_hcd 0000:04:00.0: WARN no SS endpoint bMaxBurst
> > 
> > That's odd.  Does your Fedora kernel have this patch in it?
> > 
> > commit d23336329fa4c157ed6256d4279a73b87486a1b6
> > Author: Sarah Sharp <sarah.a.sharp@xxxxxxxxxxxxxxx>
> > Date:   Mon Jun 6 00:53:47 2011 -0700
> > 
> >     xhci: Don't warn about zeroed bMaxBurst descriptor field.
> 
> That went in 3.0-rc6 and we're on 3.1.1, so we do have it.
> 
> > And then the UAS driver doesn't recover from the device reset.  It's
> > not surprising to me.  The UAS driver is still experimental, and it
> > just doesn't have good error handling.
> 
> I think we're going to disable the driver for now, at least for
> production kernels.

Yeah, I don't blame you.  Most UAS devices should have
Bulk-only-Transport (BoT) as a backup on some interface, so the
usb-storage driver will claim it.  If the device doesn't have BoT, then
it just won't work.  But it's probably better to have a stable working
driver and some unusable devices than a driver with virtually no error
handling.

Once I get the UAS driver error handling paths up to snuff, we'll
probably handle the usb-storage and uas driver load race by making the
usb-storage driver fail a probe of any storage device with a UAS
interface.  Then the UAS driver will always load for devices that do
handle it.  Only after the driver gets more stable, of course.

Sarah Sharp
--
To unsubscribe from this list: send the line "unsubscribe linux-usb" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[Index of Archives]     [Linux Media]     [Linux Input]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [Old Linux USB Devel Archive]

  Powered by Linux