All of lore.kernel.org
 help / color / mirror / Atom feed
From: Avi Kivity <avi@redhat.com>
To: Michael Tokarev <mjt@tls.msk.ru>
Cc: KVM list <kvm@vger.kernel.org>
Subject: Re: high load with usb device
Date: Tue, 14 Sep 2010 16:45:54 +0200	[thread overview]
Message-ID: <4C8F8AA2.90403@redhat.com> (raw)
In-Reply-To: <4C8F78D6.2060808@msgid.tls.msk.ru>

  On 09/14/2010 03:29 PM, Michael Tokarev wrote:
> 14.09.2010 17:25, Avi Kivity wrote:
> >   On 09/14/2010 03:15 PM, Michael Tokarev wrote:
> []
> >>  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().
> >
> >  IIUC that's mandated by USB hardware.  The guest may place data in
> >  memory, and USB polls it to see if it needs to tell send some message on
> >  the bus.
>
> Well, checking guest memory does not involve so many
> reads/writes, i guess ;)
>
> >  Please post an strace again, this time with -e trace=select.  Looks like
> >  each timer callback results in>50 syscalls, 4 of which are select()s).
>
> Here we go.
>
> qemu-syst 25728  mjt    0u   CHR    136,9      0t0       12 /dev/pts/9
> qemu-syst 25728  mjt    1u   CHR    136,9      0t0       12 /dev/pts/9
> qemu-syst 25728  mjt    2u   CHR    136,9      0t0       12 /dev/pts/9
> qemu-syst 25728  mjt    3u   CHR   10,232      0t0     4402 /dev/kvm
> qemu-syst 25728  mjt    4u  0000      0,9        0      607 anon_inode
> qemu-syst 25728  mjt    5r  FIFO      0,8      0t0 11703862 pipe
> qemu-syst 25728  mjt    6w  FIFO      0,8      0t0 11703862 pipe
> qemu-syst 25728  mjt    7u   CHR   10,200      0t0     1228 /dev/net/tun
> qemu-syst 25728  mjt    8u  0000      0,9        0      607 anon_inode
> qemu-syst 25728  mjt    9u  IPv4 11704055      0t0      TCP *:5900 (LISTEN)
> qemu-syst 25728  mjt   10u  0000      0,9        0      607 anon_inode
> qemu-syst 25728  mjt   11u  0000      0,9        0      607 anon_inode
> qemu-syst 25728  mjt   12u  0000      0,9        0      607 anon_inode
>
> 17:27:23.995096 select(13, [0 5 7 9 10 12], [], [], {1, 0}) = 1 (in [12], left {0, 998573})<0.001461>
> 17:27:23.996994 select(13, [0 5 7 9 10 12], [], [], {1, 0}) = 2 (in [5 10], left {0, 999987})<0.000042>
> 17:27:23.997258 select(13, [0 5 7 9 10 12], [], [], {1, 0}) = 1 (in [12], left {0, 999998})<0.000011>
> 17:27:23.997561 select(13, [0 5 7 9 10 12], [], [], {1, 0}) = 2 (in [5 10], left {0, 999998})<0.000009>
> 17:27:23.997739 select(13, [0 5 7 9 10 12], [], [], {1, 0}) = 1 (in [12], left {0, 998771})<0.001256>
> 17:27:23.999458 select(13, [0 5 7 9 10 12], [], [], {1, 0}) = 2 (in [5 10], left {0, 999991})<0.000017>
> 17:27:23.999665 select(13, [0 5 7 9 10 12], [], [], {1, 0}) = 1 (in [12], left {0, 999998})<0.000010>
> 17:27:23.999996 select(13, [0 5 7 9 10 12], [], [], {1, 0}) = 2 (in [5 10], left {0, 999998})<0.000009>
> 17:27:24.000199 select(13, [0 5 7 9 10 12], [], [], {1, 0}) = 1 (in [12], left {0, 998775})<0.001241>
> 17:27:24.001666 select(13, [0 5 7 9 10 12], [], [], {1, 0}) = 2 (in [5 10], left {0, 999997})<0.000006>
> 17:27:24.001768 select(13, [0 5 7 9 10 12], [], [], {1, 0}) = 1 (in [12], left {0, 999932})<0.000103>
> 17:27:24.001985 select(13, [0 5 7 9 10 12], [], [], {1, 0}) = 2 (in [5 10], left {0, 999998})<0.000005>
> 17:27:24.002061 select(13, [0 5 7 9 10 12], [], [], {1, 0}) = 1 (in [12], left {0, 998407})<0.001617>
>

That pipe is doing a lot of damage (I don't have it, and couldn't 
reproduce your results, another pointer).  Do you have CONFIG_EVENTFD 
set?  If not, why not?

-- 
error compiling committee.c: too many arguments to function


  parent reply	other threads:[~2010-09-14 14:46 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
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 [this message]
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=4C8F8AA2.90403@redhat.com \
    --to=avi@redhat.com \
    --cc=kvm@vger.kernel.org \
    --cc=mjt@tls.msk.ru \
    /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.