UVCvideo: Failed to resubmit video URB (-27) with Linux 3.3.3

From: Anisse Astier
Date: Thu Apr 26 2012 - 14:07:33 EST


Hi,


I'm experiencing a problem with uvcvideo with kernel 3.3.3Âand today's
Linus' tree.

Problem not reproduced in 3.2.15, so this could be labelled as a regression.

See webcam lsusb and (verbose!) dmesg log in attachment, which exhibits
the problem.

We see lots of error (-18 = -EXDEV), that indicate that URB was too late
and then dropped, and they add up until we reach the "Failed to resubmit
video URB" scheduling issue.

Installed libv4l version is 0.8.6.
I'm reproducing this with: gst-launch-0.10 --verbose v4l2src ! xvimagesink
(Skype exhibits the problem too, while it isn't using gstreamer, so it
really seems to come from kernel. Also, doesn't happen with 3.2)

This is the first part of the problem. The second part is that if I
restart the webcam with gst-launch after the first failure, I have a
total freeze, just after these messages in the log (fetched with
netconsole, I wasn't able to get a panic trace):

[ 191.796217] uvcvideo: Marking buffer as bad (error bit set).
[ 191.796233] uvcvideo: Marking buffer as bad (error bit set).
[ 191.796244] uvcvideo: Marking buffer as bad (error bit set).
[ 191.796252] uvcvideo: Marking buffer as bad (error bit set).
[ 191.796259] uvcvideo: Frame complete (EOF found).
[ 191.796265] uvcvideo: EOF in empty payload.
[ 192.972803] uvcvideo: Marking buffer as bad (error bit set).
[ 192.972818] uvcvideo: Dropping payload (out of sync).
[ 194.289463] uvcvideo: Marking buffer as bad (error bit set).
[ 194.289478] uvcvideo: Frame complete (FID bit toggled).
[ 194.289486] uvcvideo: Marking buffer as bad (error bit set).
[ 194.289493] uvcvideo: Frame complete (FID bit toggled).
[ 194.289499] uvcvideo: Marking buffer as bad (error bit set).
[ 194.289505] uvcvideo: Frame complete (FID bit toggled).
[ 194.289511] uvcvideo: Marking buffer as bad (error bit set).
[ 194.289518] uvcvideo: Frame complete (FID bit toggled).
[ 194.289524] uvcvideo: Marking buffer as bad (error bit set).
[ 194.289531] uvcvideo: Frame complete (FID bit toggled).


Last but not least, uvcvideo is un-bisectable because there were a few
crash-fixes during the 3.3 development cycle. I started bisecting and got
kernel panics.


Regards,

--
Anisse

Attachment: log-uvc-crash.gz
Description: GNU Zip compressed data

Attachment: lsusb.txt.gz
Description: GNU Zip compressed data