Hi Hans,
On Mon, Oct 08, 2012 at 01:27:28PM +0200, Hans de Goede wrote:
On 10/02/2012 05:26 PM, Shawn Starr wrote:
Reopening this issue with usb-host stalling now
ehci warning: guest updated active QH
USBDEVFS_DISCARDURB: Invalid argument
USBDEVFS_DISCARDURB: Invalid argument
husb: leaking iso urbs because of discard failure
Now with qemu-XXX-1.2.0-12.fc18.x86_64
if I have webcam open, it will stall and not resume. This is with usb-host
directly.
Shall I enable debugging again?
Hmm, this likely is caused by too high latencies in your system,
which are caused in turn I believe by you running an F-18 kernel which
has various debugging options enabled inside the kernel which can
cause significant latencies. I've spend 1.5 days tracing this very
same issue down in the past. So please first of all make sure that you're
running a kernel without debugging options enabled, either the latest
F-18 build from koji:
http://koji.fedoraproject.org/koji/buildinfo?buildID=358570
or an F-17 kernel, almost all the F-18 "rc" kernels have debugging enabled
and thus cause significant latency issues.
If you can reproduce this with a kernel without the debugging options,
then we can investigate this further.
By changing the kernel, don't you just make the issue harder to reproduce?
I mean Linux isn't real-time so any kernel can show latency spikes
and it's a show-stopper if iso transfers stall instead of just
dropping some packets.
There will always be a race between the call to USBDEVFS_DISCARDURB
and the URB completing. IMHO the handling in usb_host_stop_n_free_iso()
is buggy. How about dropping the "killed" and "free" variables and
calling async_complete() and g_free() unconditionally?