qemu-devel
[Top][All Lists]
Advanced

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

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


From: Hans de Goede
Subject: Re: [Qemu-devel] [PATCH 18/18] usb: add ehci adapter
Date: Tue, 17 May 2011 19:36:29 +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 07:05 PM, David Ahern wrote:


On 05/17/11 09:02, Gerd Hoffmann wrote:

   Hi,

(And by the way, where are the focused patches for each, especially the
last one - nuking the 8kHz code?

It's squashed in, like everything else.

We know that it worked on linux and
that printers, scanners and storage devices worked ok (mostly).

8 kHz is insane.

I looked closely while trying to make 8 kHz a runtime option instead of
a compile time option, then decided to drop it altogether as it is
totally pointless.  qemu simply can't handle that wakeup rate.  It maxed
out at ~3 kHz wakeups in my tests.  And it burns tons of CPU time.

Our mileage varies. While CPU usage was high (30%'ish) when the device
was in use, the controller was stopped when devices are not accessed.
All in all my laptop was billowing smoke while using it.


I also don't see what it would buy us.  We can wakeup with 1 kHz rate
(maybe even lower), then emulate 8 (or more) microframes each time.

How much time have you spent looking at isochronous devices (web cams,
audio streaming, iphones)? Your positive that the 8k code will not be
needed for it?

Very likely it won't be needed both the guest OS, as well as any
emulated hardware (or redirection code) will be doing some amount of
buffering. Normal bufferering for usb video devices is 32 iso packets
per urb and then 2-4 queued urbs, so that means that the OS does not
even ask to be bothered with iso transfers till 32 of them have completed,
or in other words 4 ms have passed in the usb 2 case with an endpoint
with the lowest possible interval.

Regards,

Hans



reply via email to

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