All of lore.kernel.org
 help / color / mirror / Atom feed
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

  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.