From: Michael Tokarev <mjt@tls.msk.ru>
To: Avi Kivity <avi@redhat.com>
Cc: KVM list <kvm@vger.kernel.org>
Subject: Re: high load with usb device
Date: Tue, 14 Sep 2010 17:15:41 +0400 [thread overview]
Message-ID: <4C8F757D.1010509@msgid.tls.msk.ru> (raw)
In-Reply-To: <4C8F563E.6070701@msgid.tls.msk.ru>
[linux-perf-users removed from Cc]
14.09.2010 15:02, Michael Tokarev wrote:
> 14.09.2010 14:39, Avi Kivity wrote:
>> On 09/14/2010 12:25 PM, Michael Tokarev wrote:
>>> Not that it is much helpful either. lsof:
>>>
>>> qemu-syst 23203 mjt 0u CHR 136,9 0t0 12 /dev/pts/9
>>> qemu-syst 23203 mjt 1u CHR 136,9 0t0 12 /dev/pts/9
>>> qemu-syst 23203 mjt 2u CHR 136,9 0t0 12 /dev/pts/9
>>> qemu-syst 23203 mjt 3u CHR 10,232 0t0 4402 /dev/kvm
>>> qemu-syst 23203 mjt 4u 0000 0,9 0 607 anon_inode
>>> qemu-syst 23203 mjt 5r FIFO 0,8 0t0 8172675 pipe
>>> qemu-syst 23203 mjt 6w FIFO 0,8 0t0 8172675 pipe
>>> qemu-syst 23203 mjt 7u CHR 10,200 0t0 1228 /dev/net/tun
>>> qemu-syst 23203 mjt 8u 0000 0,9 0 607 anon_inode
>>> qemu-syst 23203 mjt 9u IPv4 8173217 0t0 TCP *:5900 (LISTEN)
>>> qemu-syst 23203 mjt 10u 0000 0,9 0 607 anon_inode
>>> qemu-syst 23203 mjt 11u 0000 0,9 0 607 anon_inode
>>> qemu-syst 23203 mjt 12u 0000 0,9 0 607 anon_inode
>>
>>> So it is constantly poking fds# 11, 12, 10, 5& 6.
>>> 5 and 6 are pipe (selfpipe?),
>>
>> signalfd emulation, used to deliver signals efficiently. Older glibc?
>
> [e]glibc-2.11.
>
> $ grep SIGNAL config-host.mak
> CONFIG_SIGNALFD=y
>
> From strace of another run:
> 24318 signalfd(-1, [BUS ALRM IO], 8) = 12
> (so one of the remaining fds is a signalfd :)
>
>>> and 10..12 are "anon inode".
>>
>> Those are likely eventfds.
>>
>>> Here's the command line again:
>>>
>>> qemu-system-x86_64 \
>>> -netdev type=tap,ifname=tap-kvm,id=x \
>>> -device virtio-net-pci,netdev=x \
>>> -monitor stdio \
>>> -boot n \
>>> -usbdevice tablet \
>>> -m 1G \
>>> -vnc :0
>>>
>>> Yes, it does quite a lot of timer stuff... ;)
>>
>> So timers internal to usb.
>>
>> Please try (independently):
>>
>> - just -usb, without -usbdevice tablet
>
> No, that one works as expected - all quiet.
> -usbdevice tablet is also quiet up until
> guest loads usb host controller driver
> (not particular usb device driver).
>
>> - instrument calls to qemu_mod_timer() in hw/usb-*hci.c. Looks like
>> these are all 1kHz, but something else is clearly happening.
Ok. There's nothing interesting going on there either,
apparently.
It is using hw/usb-uhci.c. I added a few prints() in there,
but they're firing at the defined 1KHz frequency.
Just for test, I lowered the frequency (FRAME_TIMER_FREQ)
from 1000 to 500, and the load dropped to half, from 19%
to 9..10%.
Looking at what hw/usb-uhci.c:uhci_frame_timer() routine
does, it is quite expected to have that many writes and
reads and that many gettimers(). It is polling for events
every 1/1000th of a second, instead of using some form of
select().
I'll do some more tests -- after all I'm curious why winXP
does not show this behavour.
Thanks!
/mjt
next prev parent reply other threads:[~2010-09-14 13:15 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-09-03 12:21 high load with win7 & usb tablet Michael Tokarev
2010-09-10 11:47 ` Jes Sorensen
2010-09-10 12:16 ` Michael Tokarev
2010-09-10 16:17 ` high load with usb device Michael Tokarev
2010-09-12 9:26 ` Avi Kivity
2010-09-14 6:51 ` Michael Tokarev
2010-09-14 9:06 ` Avi Kivity
2010-09-14 9:08 ` Avi Kivity
2010-09-14 10:00 ` Michael Tokarev
2010-09-14 10:07 ` Avi Kivity
2010-09-14 10:25 ` Michael Tokarev
2010-09-14 10:39 ` Avi Kivity
2010-09-14 11:02 ` Michael Tokarev
2010-09-14 13:15 ` Michael Tokarev [this message]
2010-09-14 13:25 ` Avi Kivity
2010-09-14 13:29 ` Michael Tokarev
2010-09-14 13:38 ` Michael Tokarev
2010-09-14 14:45 ` Avi Kivity
2010-09-14 14:53 ` Michael Tokarev
2010-09-14 16:00 ` Avi Kivity
2010-09-14 16:29 ` Michael Tokarev
2010-09-14 16:37 ` Avi Kivity
2010-09-14 16:50 ` Michael Tokarev
2010-09-14 16:45 ` David S. Ahern
2010-09-14 15:51 ` David S. Ahern
2010-09-14 16:00 ` Michael Tokarev
2010-09-14 16:09 ` David S. Ahern
2010-09-10 12:19 ` high load with win7 & usb tablet Avi Kivity
2010-09-10 12:44 ` Michael Tokarev
2010-09-10 12:50 ` Avi Kivity
[not found] ` <4C8A44E6.2060008@msgid.tls.msk.ru>
2010-09-10 14:56 ` Avi Kivity
2010-09-10 15:03 ` Michael Tokarev
2010-09-10 16:03 ` Avi Kivity
2010-09-14 8:26 ` Brad Campbell
2010-09-14 8:33 ` Michael Tokarev
2010-09-14 8:46 ` Brad Campbell
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4C8F757D.1010509@msgid.tls.msk.ru \
--to=mjt@tls.msk.ru \
--cc=avi@redhat.com \
--cc=kvm@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.