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>
next prev parent 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.