qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] USB streaming [Re: [PATCH 18/18] usb: add ehci adapter]


From: Hans de Goede
Subject: Re: [Qemu-devel] USB streaming [Re: [PATCH 18/18] usb: add ehci adapter]
Date: Wed, 18 May 2011 10:25:38 +0200
User-agent: Mozilla/5.0 (X11; U; Linux x86_64; en-US; rv:1.9.2.17) Gecko/20110428 Fedora/3.1.10-1.fc15 Lightning/1.0b2 Thunderbird/3.1.10

Hi,

On 05/17/2011 09:18 PM, David Ahern wrote:


On 05/17/11 13:10, David Ahern wrote:
Note that once every while a packet will get lost since normally a usb
device is synced to the usb frame timer, but the real and emulated frame
timer
are not synced, so eventually a packet will get lost.

I noticed that as well. The guest uhci driver (linux at least) guesses
where to put the initial request (10 frames out as I recall). From there
the requests need to flow - responses come into the guest, requests are
appended to the stream.

One missed packet in the guest causes the driver to "start over" -- ie,
it's no longer a stream, but an initial request placed 10 frames out.
That causes an ugly jitter, and if the qemu controller happens to be
past the '10 frames out' guess by the OS you get a 1+ sec gap of silence.

Oh yea, as I mentioned in the URL modifying the guest driver to have
more outstanding URBs (at least 4 URBs with 5 packets per URB) was a key
aspect of the solution as well -- keeping the guest OS and controller
from losing sync.

With the fifo now in place this should no longer be necessary. I don't know
if you know, but I've been working on qemu usb stuff for a while now,
mostly focusing on usb redirection over the network. I've been distracted
by some other work for the last 2 months, but I hope to return to working
on this full time again now. Currently my work is in bad need of syncing
with the latest qemu. Once that is done I'll likely put out a call
for some early testers. Any feedback would be very welcome. My isoc
buffering fixes for usb-redirection on the host itself were mostly
done to get a feel for all this, and because if I could not get this
to work locally, it certainly would not work over the network.

Regards,

Hans



reply via email to

[Prev in Thread] Current Thread [Next in Thread]