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. David > > David > >> >> Regards, >> >> Hans > >