public inbox for kvm@vger.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 18:37:29 +0200	[thread overview]
Message-ID: <4C8FA4C9.2080208@redhat.com> (raw)
In-Reply-To: <4C8FA2D6.1090604@msgid.tls.msk.ru>

  On 09/14/2010 06:29 PM, Michael Tokarev wrote:
> 14.09.2010 20:00, Avi Kivity wrote:
> >>  As I mentioned in other emails in this thread:
> >>
> >>  o yes, I do have CONFIG_EVENTFD set, and it is being used
> >>     too (fd#12 in the above strace).
> >
> >  I thought that was the signalfd.
>
> Uh. Yes, it was, i confused the two.  And yes, CONFIG_EVENTFD is
> set and used too.
>
> $ grep FD= config-host.mak
> CONFIG_EVENTFD=y
> CONFIG_SIGNALFD=y
>
> >>  o 0.13.0-rc1 behaves the same way (that is, it also shows
> >>     high load when idle -- the same 18% of host CPU), but it
> >>     has no pipe on fd#5.
> >
> >  I think it's host_alarm_handler()'s use of qemu_notify_event().  It's
> >  telling the main loop to rescan pending events, even though it's called
> >  from the main loop itself.  Please drop it and rerun.
>
> Without qemu_notify_event() in host_alarm_handler():
>
> % time     seconds  usecs/call     calls    errors syscall
> ------ ----------- ----------- --------- --------- ----------------
>   98.96   48.184832       13747      3505           ioctl
>    0.39    0.191613          25      7745        28 futex
>    0.37    0.181032           1    173192           select
>    0.09    0.045379           0    980369           clock_gettime
>    0.05    0.024362           0    351024    173220 read
>    0.05    0.023247           0    487766           gettimeofday
>    0.04    0.017996           0    319428           timer_gettime
>    0.03    0.013837           0    198267           timer_settime
>    0.02    0.010036           0    177790           rt_sigaction
>    0.00    0.000000           0         1           writev
>    0.00    0.000000           0         2           poll
>    0.00    0.000000           0         1           rt_sigpending
>    0.00    0.000000           0         1         1 rt_sigtimedwait
> ------ ----------- ----------- --------- --------- ----------------
> 100.00   48.692334               2699091    173249 total
>
> The picture is pretty similar to the one before :)
> (And yes, I'm sure I've run the right binary).

No more writes, and read() is cut to twice select() (due to the need to 
see a 0, we can probably elimate it if we know it's a real eventfd), 
somewhat fewer select()s.

What's the cpu load?

> But it looks like we're barking the wrong tree.  It's spending
> 99% time in ioctl.  Yes, there's quite large amount of reads
> and gettimes, but they're taking very small time, even combined.
>
> It is still spending much more time in the ioctl (apparently in
> kvm_run).

That time includes guest sleep time, not just cpu time, so it isn't an 
indicator.

> For comparison, here's the same strace stats without -usbdevice:
>
> % time     seconds  usecs/call     calls    errors syscall
> ------ ----------- ----------- --------- --------- ----------------
>   97.70    0.080237          22      3584           select
>    1.09    0.000895           0      6018      3584 read
>    0.33    0.000271           0      9670           clock_gettime
>    0.31    0.000254           0      6086           gettimeofday
>    0.26    0.000210           0      2432           rt_sigaction
>    0.17    0.000137           0      3653           timer_gettime
>    0.15    0.000122           0      2778           timer_settime
>    0.00    0.000000           0         1           ioctl
>    0.00    0.000000           0         1           rt_sigpending
>    0.00    0.000000           0         1         1 rt_sigtimedwait
> ------ ----------- ----------- --------- --------- ----------------
> 100.00    0.082126                 34224      3585 total
>
> Yes, it is still doing lots of unnecessary stuff, but the load
> is<1%.
>
> (This is without host_alarm_handler() in qemu_notify_event())
>
>

I guess it only saw a single ioctl, so it didn't measure it.  Ping the 
guest and you'll see ioctl times surge back.

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


  reply	other threads:[~2010-09-14 16:37 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
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 [this message]
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=4C8FA4C9.2080208@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox