Re: Linux UVC driver can not handle urb_submit error

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

 



Dears,


we will trace the detail of urb content in UVC Video complete function
in advance. To try to figure out the cause of urb submit error.

Thanks!

Best Regards,
Soho

2011/5/26 Soho Soho123 <soho123.2012@xxxxxxxxx>:
> Dears,
>
> let me describe the detail about my testing:
> Stream Server is MJPG-Streamer
> ================================================================
> A.
> Using linux 2.6.30 kernel do the testing, and DO NOT update linux usb
> subsystem code (usb core , usb host driver), and DO NOT update UVC
> driver
>
> RESULT: IP Cam stream can work over night
> ------------------------------------------------------------------------------------------------------------------------------
> B.
> Using Linux 2.6.30 kernel do the testing, and Update linux usb
> subsystem code up to linux 2.6.39 (include the patch that I have
> mentioned)  and DO NOT update UVC driver
>
> RESULT: IP cam stream can work for a few minutes only, then UVC driver
> will get submit urb error (-27) , error message list below:
> # [ 1067.188000] iso_stream_schedule:line=1514, request 812acc00 would
> overflow (3914+31 >= 3936)
> [ 1067.188000] uvcvideo: Failed to resubmit video URB (-27).
> [ 1067.192000] iso_stream_schedule:line=1514, request 8145bc00 would
> overflow (3917+31 >= 3936)
> [ 1067.192000] uvcvideo: Failed to resubmit video URB (-27).
> [ 1067.292000] iso_stream_schedule:line=1514, request 81769000 would
> overflow (3919+31 >= 3936)
> [ 1067.292000] uvcvideo: Failed to resubmit video URB (-27).
> [ 1067.392000] iso_stream_schedule:line=1514, request 81769400 would
> overflow (3918+31 >= 3936)
> [ 1067.392000] uvcvideo: Failed to resubmit video URB (-27).
> [ 1067.492000] iso_stream_schedule:line=1514, request 81769800 would
> overflow (3917+31 >= 3936)
> [ 1067.492000] uvcvideo: Failed to resubmit video URB (-27).
> -------------------------------------------------------------------------------------------------------------------------------
> C.
> Using Linux 2.6.30 kernel do the testing, and Update linux usb
> subsystem code up to linux 2.6.39 (include the patch that I have
> mentioned)  and Update UVC driver, we modify the number of URBs in
> vuvcideo.h
> UVC_URBS                5
> to
> UVC_URBS                20
>
> RESULT: IP cam stream can work for over night, but there is some urb
> submit error occur. The stream can keep working even the urb submit
> error.
> ================================================================
> We would like to figure out the reason about new usb subsystem code
> need more UVC_URB for working long time.Coule you provide the hints
> for us, such that we can go in depth for tracing the flow in ehci iso
> schedule scheme?
>
> Thanks a lot!
>
>
> Best Regards,
> Soho
>
>
>
> 2011/5/26 Alan Stern <stern@xxxxxxxxxxxxxxxxxxx>:
>> On Thu, 26 May 2011, Soho Soho123 wrote:
>>
>>> Dears,
>>>
>>>
>>> The check line still included in iso_stream_schedule(). in linux
>>> 2.6.39. I check the code from linux archive
>>> [linux/kernel/git/stable/linux-2.6.39.y.git] / drivers / usb / host /
>>> ehci-sched.c, line 1488 ~1496
>>> ===============================================
>>> 1488        /* Tried to schedule too far into the future? */
>>> 1489         if (unlikely(start - now + span - period
>>> 1490                                 >= mod - 2 * SCHEDULE_SLOP)) {
>>> 1491                 ehci_dbg(ehci, "request %p would overflow (%d+%d >= %d)\n",
>>> 1492                                 urb, start - now, span - period,
>>> 1493                                 mod - 2 * SCHEDULE_SLOP);
>>> 1494                 status = -EFBIG;
>>> 1495                 goto fail;
>>> 1496         }
>>> ================================================
>>> and
>>> http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob_plain;f=drivers/usb/host/ehci-sched.c;hb=4a7df24ddc7097cd789a7527187826552ea0765e
>>> ==================================================
>>> 1492  /* Tried to schedule too far into the future? */
>>> 1493  if (unlikely(start - now + span - period
>>> 1494                          >= mod - 2 * SCHEDULE_SLOP)) {
>>> 1495          ehci_dbg(ehci, "request %p would overflow (%d+%d >= %d)\n",
>>> 1496                          urb, start - now, span - period,
>>> 1497                          mod - 2 * SCHEDULE_SLOP);
>>> 1498          status = -EFBIG;
>>> 1499          goto fail;
>>> 1500  }
>>> ==================================================
>>
>> Okay.  This is different from the line you pointed out before.
>>
>>> The check line will get error "EFBIG" for urb_sumbit.
>>> Could you kindly help confirm?
>>
>> Sure, it can happen.  Do you have the output from the ehci_dbg()
>> statement that gets triggered when the failure occurs?
>>
>> Alan Stern
>>
>>
>
--
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