lkml.org 
[lkml]   [2013]   [Jan]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: USB autosuspend vs. URB submission
On Thu, 10 Jan 2013, Laurent Pinchart wrote:

> Hi Josh,
>
> On Tuesday 08 January 2013 11:03:22 Josh Boyer wrote:
> > On Tue, Jan 08, 2013 at 10:51:20AM -0500, Alan Stern wrote:
> > > On Mon, 7 Jan 2013, Josh Boyer wrote:
> > > > Hi,
> > > >
> > > > We've had a few reports in Fedora of users hitting the WARN_ONCE in
> > > > drivers/usb/core/urb.c that prints a warning about a usb_submit_urb
> > > > being called on an active URB. One of them[1] is from the ums_realtek
> > > > driver and the other[2] is from the uvcvideo driver. However, I noticed
> > > > that in both instances it seems the devices were coming back from what I
> > > > think is autosuspend.
> > > >
> > > > I didn't immediately find any similar reports, and to my rather
> > > > inexperienced eyes the drivers didn't seem to be doing anything clearly
> > > > wrong. I'm wondering if anyone has some possible ideas for debugging
> > > > and whether or not this might be a general issue?
> > >
> > > I don't see anything wrong either.
> > >
> > > Can you ask the users to collect a usbmon trace covering the period
> > > when the problem occurs?
> >
> > I'll certainly ask. I'm not particularly hopeful for great results though,
> > as the problems seem to be rather intermittent.
> >
> > Thanks for taking a look.
>
> I've never heard of such problems with the uvcvideo driver, and I don't see

Such problems could have existed silently. The new kernel calls
WARN_ONCE but otherwise treats the error the same as the old kernels.

> anything wrong with the code at first sight. The driver only submits URBs when
> starting the video capture (at that point no URB should be in flight) or in
> the URB completion handler (by definition the URB has completed then).
>
> I've had a quick look at the trace posted at
> https://bugzilla.redhat.com/show_bug.cgi?id=879462 but usbmon only shows URBs
> that are successfully submitted. I'm not sure what useful information I could
> get from the trace.

As Ming Lei pointed out, we would have to combine the dmesg information
with the usbmon trace. The WARN_ONCE and usbmon both provide the URB's
address, so we could tell if that URB really was still pending when the
WARN_ONCE was triggered. We also might be able to tell (by looking at
the URB's contents) what piece of code had submitted it the first time.

Alan Stern



\
 
 \ /
  Last update: 2013-01-10 17:01    [W:0.086 / U:0.340 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site