Re: [Qemu-devel] High CPU use of -usbdevice tablet (was Re: KVM usability)

Avi Kivity
2010-04-04T16:58:38Z

On 04/04/2010 05:25 PM, Paul Brook wrote:
>>> Looks like the tablet is set to 100 Hz polling rate. We may be able
>>> to get away with 30 Hz or even less (ep_bInterval, in ms, in
>>> hw/usb-wacom.c).
>>>
>> Changing the USB tablet polling interval from 10ms to 100ms in both
>> hw/usb-wacom.c and hw/usb-hid.c made no difference except the an increase
>> in bInterval shown in lsusb -v in the guest and the hint of jerky mouse
>> movement I expected from setting this value so high. A similar change to
>> the polling interval for the keyboard and mouse also made no difference to
>> their performance impact.
>>
> The USB HID devices implement the SET_IDLE command, so the polling interval
> will have no real effect on performance.
>

On a Linux guest (F12), I see 125 USB interrupts per second with no
mouse movement, so something is broken (on the guest or host).

> My guess is that the overhead you're seeing is entirely from the USB host
> adapter having to wake up and check the transport descriptor lists. This will
> only result in the guest being woken if a device actually responds (as
> mentioned above it should not).
>

A quick profile on the host side doesn't show this. Instead, I see a
lot of select() overhead. Surprising as there are ~10 descriptors being
polled, so ~1200 polls per second. Maybe epoll will help here.

--
Do not meddle in the internals of kernels, for they are subtle and quick to panic.