All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Ahern <dsahern@gmail.com>
To: Dong Hao <haodong@linux.vnet.ibm.com>, acme@infradead.org
Cc: mtosatti@redhat.com, avi@redhat.com, mingo@kernel.org,
	linux-kernel@vger.kernel.org, kvm@vger.kernel.org,
	xiaoguangrong@linux.vnet.ibm.com, runzhen@linux.vnet.ibm.com
Subject: Re: [PATCH v8 3/3] KVM: perf: kvm events analysis tool
Date: Thu, 20 Sep 2012 07:34:36 -0600	[thread overview]
Message-ID: <505B1B6C.5060904@gmail.com> (raw)
In-Reply-To: <1347870675-31495-4-git-send-email-haodong@linux.vnet.ibm.com>

On 9/17/12 2:31 AM, Dong Hao wrote:
> From: Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
>
> Add 'perf kvm stat' support to analyze kvm vmexit/mmio/ioport smartly
>
> Usage:
> - kvm stat
>    run a command and gather performance counter statistics, it is the alias of
>    perf stat
>
> - trace kvm events:
>    perf kvm stat record, or, if other tracepoints are interesting as well, we
>    can append the events like this:
>    perf kvm stat record -e timer:* -a
>
>    If many guests are running, we can track the specified guest by using -p or
>    --pid, -a is used to track events generated by all guests.
>
> - show the result:
>    perf kvm stat report
>
> The output example is following:
> # pgrep qemu
> 13005
> 13059
>
> total 2 guests are running on the host
>
> Then, track the guest whose pid is 13059:
> # ./perf kvm stat record -p 13059
> ^C[ perf record: Woken up 1 times to write data ]
> [ perf record: Captured and wrote 0.253 MB perf.data.guest (~11065 samples) ]
>
> See the vmexit events:
> # ./perf kvm stat report --event=vmexit
>
>
> Analyze events for all VCPUs:
>
>               VM-EXIT    Samples  Samples%     Time%         Avg time
>
>           APIC_ACCESS        460    70.55%     0.01%     22.44us ( +-   1.75% )
>                   HLT         93    14.26%    99.98% 832077.26us ( +-  10.42% )
>    EXTERNAL_INTERRUPT         64     9.82%     0.00%     35.35us ( +-  14.21% )
>     PENDING_INTERRUPT         24     3.68%     0.00%      9.29us ( +-  31.39% )
>             CR_ACCESS          7     1.07%     0.00%      8.12us ( +-   5.76% )
>        IO_INSTRUCTION          3     0.46%     0.00%     18.00us ( +-  11.79% )
>         EXCEPTION_NMI          1     0.15%     0.00%      5.83us ( +-   -nan% )
>
> Total Samples:652, Total events handled time:77396109.80us.
>
> See the mmio events:
> # ./perf kvm stat report --event=mmio
>
>
> Analyze events for all VCPUs:
>
>           MMIO Access    Samples  Samples%     Time%         Avg time
>
>          0xfee00380:W        387    84.31%    79.28%      8.29us ( +-   3.32% )
>          0xfee00300:W         24     5.23%     9.96%     16.79us ( +-   1.97% )
>          0xfee00300:R         24     5.23%     7.83%     13.20us ( +-   3.00% )
>          0xfee00310:W         24     5.23%     2.93%      4.94us ( +-   3.84% )
>
> Total Samples:459, Total events handled time:4044.59us.
>
> See the ioport event:
> # ./perf kvm stat report --event=ioport
>
>
> Analyze events for all VCPUs:
>
>        IO Port Access    Samples  Samples%     Time%         Avg time
>
>           0xc050:POUT          3   100.00%   100.00%     13.75us ( +-  10.83% )
>
> Total Samples:3, Total events handled time:41.26us.
>
> And, --vcpu is used to track the specified vcpu and --key is used to sort the
> result:
> # ./perf kvm stat report --event=vmexit --vcpu=0 --key=time
>
>
> Analyze events for VCPU 0:
>
>               VM-EXIT    Samples  Samples%     Time%         Avg time
>
>                   HLT         27    13.85%    99.97% 405790.24us ( +-  12.70% )
>    EXTERNAL_INTERRUPT         13     6.67%     0.00%     27.94us ( +-  22.26% )
>           APIC_ACCESS        146    74.87%     0.03%     21.69us ( +-   2.91% )
>        IO_INSTRUCTION          2     1.03%     0.00%     17.77us ( +-  20.56% )
>             CR_ACCESS          2     1.03%     0.00%      8.55us ( +-   6.47% )
>     PENDING_INTERRUPT          5     2.56%     0.00%      6.27us ( +-   3.94% )
>
> Total Samples:195, Total events handled time:10959950.90us.
>
> [ Dong Hao <haodong@linux.vnet.ibm.com>
>    Runzhen Wang <runzhen@linux.vnet.ibm.com>:
>
>       - rebase it on current acme's tree
>
>       - fix the compiling-error on i386
>
> ]
>
> Signed-off-by: Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
> Signed-off-by: Dong Hao <haodong@linux.vnet.ibm.com>
> Signed-off-by: Runzhen Wang <runzhen@linux.vnet.ibm.com>
> ---
>   tools/perf/Documentation/perf-kvm.txt |   30 ++-
>   tools/perf/MANIFEST                   |    3 +
>   tools/perf/builtin-kvm.c              |  840 ++++++++++++++++++++++++++++++++-
>   tools/perf/util/header.c              |   59 +++-
>   tools/perf/util/header.h              |    1 +
>   tools/perf/util/thread.h              |    2 +
>   6 files changed, 929 insertions(+), 6 deletions(-)
>

Acked-by: David Ahern <dsahern@gmail.com>

  reply	other threads:[~2012-09-20 13:34 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-09-17  8:31 [PATCH v8 0/3] KVM: perf: kvm events analysis tool Dong Hao
2012-09-17  8:31 ` [PATCH v8 1/3] KVM: x86: export svm/vmx exit code and vector code to userspace Dong Hao
2012-09-17 14:58   ` Arnaldo Carvalho de Melo
2012-09-20 12:51     ` Marcelo Tosatti
2012-09-27  4:26   ` [tip:perf/core] KVM: x86: Export svm/ vmx " tip-bot for Xiao Guangrong
2012-09-17  8:31 ` [PATCH v8 2/3] perf: move stat related code to util/stat.c Dong Hao
2012-09-18 14:01   ` David Ahern
2012-09-18 19:18   ` David Ahern
2012-09-19  1:53     ` Xiao Guangrong
2012-09-19  4:00       ` David Ahern
2012-09-19 15:18   ` [tip:perf/core] perf stat: Move stats " tip-bot for Xiao Guangrong
2012-09-17  8:31 ` [PATCH v8 3/3] KVM: perf: kvm events analysis tool Dong Hao
2012-09-20 13:34   ` David Ahern [this message]
2012-09-27  4:27   ` [tip:perf/core] perf kvm: Events " tip-bot for Xiao Guangrong

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=505B1B6C.5060904@gmail.com \
    --to=dsahern@gmail.com \
    --cc=acme@infradead.org \
    --cc=avi@redhat.com \
    --cc=haodong@linux.vnet.ibm.com \
    --cc=kvm@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=mtosatti@redhat.com \
    --cc=runzhen@linux.vnet.ibm.com \
    --cc=xiaoguangrong@linux.vnet.ibm.com \
    /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.