Re: Linux UVC driver can not handle urb_submit error

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

 



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