From: David Ahern <dsahern@gmail.com>
To: Xiao Guangrong <xiaoguangrong@linux.vnet.ibm.com>
Cc: Xiao Guangrong <xiaoguangrong.eric@gmail.com>,
Avi Kivity <avi@redhat.com>,
Marcelo Tosatti <mtosatti@redhat.com>,
Ingo Molnar <mingo@elte.hu>,
Arnaldo Carvalho de Melo <acme@infradead.org>,
Stefan Hajnoczi <stefanha@gmail.com>,
LKML <linux-kernel@vger.kernel.org>, KVM <kvm@vger.kernel.org>
Subject: Re: [PATCH v3 3/3] KVM: perf: kvm events analysis tool
Date: Wed, 08 Feb 2012 07:26:36 -0700 [thread overview]
Message-ID: <4F32861C.5020907@gmail.com> (raw)
In-Reply-To: <4F3212CA.4080208@linux.vnet.ibm.com>
On 02/07/2012 11:14 PM, Xiao Guangrong wrote:
> On 02/08/2012 01:55 AM, David Ahern wrote:
>
>> On 02/07/2012 06:08 AM, Xiao Guangrong wrote:
>>> Add 'perf kvm-events' support to analyze kvm vmexit/mmio/ioport smartly
>>
>> example output?
>>
>
>
> You can find a example output at this website:
> http://lwn.net/Articles/479069/
>
> [ Sorry, i did not put it into changlog in the v3 ]
Right, I meant add an example output to the changelog.
>
>>> +--------
>>> +[verse]
>>> +'perf kvm-events' {record|report}
>>
>> command name is very generic -- kvm-events; but command focus is rather
>> narrow -- I/O events.
>>
>
>
> It is not only analysing IO events but also for other events(like vmexit,
> and other events will be added). I prefer to kvm-events :)
Same. kvm-events should be the name of the command. But from the
admittedly not thorough review of the code it seemed to be expecting I/O
(and entry/exit tracepoints as a part of that) and not easily amendable
to add new tracepoints.
---8<---
>>> +
>>> + vcpu_event_record = zalloc(sizeof(*vcpu_event_record) * kvm_max_vcpus);
>>> + if (!vcpu_event_record)
>>> + die("zalloc.\n");
>>> +
>>> + for (i = 0; i < (int)EVENTS_CACHE_SIZE; i++)
>>> + INIT_LIST_HEAD(&kvm_events_cache[i]);
>>> +}
>>
>> Really, the caches could be tied to thread structs, and then you don't
>> need a max vcpu style allocation. more below.
>>
>
>
> Hmm, this cache is used to cache "event struct", this is the common resources
> for all vcpus.
But consecutive events that are analyzed together happen in the context
of a thread -- the vcpu task.
---8<---
>>> +static int kvm_events_report(int vcpu)
>>> +{
>>> + init_kvm_event_record();
>>> + init_kvm_tid_to_pid();
>>> + verify_vcpu(vcpu);
>>> + select_key();
>>> + register_kvm_events_ops();
>>> + setup_pager();
>>
>> I believe setup_pager is handled by perf.c
>>
>
>
> Hmm, i did not find it, could you please tell me where is it?
> And, setup_pager is also used in other tools such 'perf sched',
> 'perf lock'...
>
run_builtin() --> commit_pager_choice() --> setup_pager()
It could be that the other commands need to be updated.
---8<---
>>> + if (!strncmp(argv[0], "rec", 3))
>>> + return kvm_events_record(argc, argv);
>>> +
>>> + if (!strncmp(argv[0], "report", 6)) {
>>
>> exact match for 'report'?
>>
>
>
> It is the style in other tools, what is your suggestion?
Right, I see that. builtin-lock should be fixed.
rec is ok for record; is report123 ok for report? if not that string
should be an exact match.
David
next prev parent reply other threads:[~2012-02-08 14:26 UTC|newest]
Thread overview: 9+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-02-07 13:06 [PATCH v3 0/3] KVM: perf: a smart tool to analyse kvm events Xiao Guangrong
2012-02-07 13:07 ` [PATCH 1/3] KVM: x86: export svm/vmx exit-code definitions to userspace Xiao Guangrong
2012-02-07 13:08 ` [PATCH v3 2/3] KVM: x86: add tracepoints to trace mmio begin and complete Xiao Guangrong
2012-02-07 13:08 ` [PATCH v3 3/3] KVM: perf: kvm events analysis tool Xiao Guangrong
2012-02-07 17:55 ` David Ahern
2012-02-08 6:14 ` Xiao Guangrong
2012-02-08 14:26 ` David Ahern [this message]
2012-02-09 3:07 ` Xiao Guangrong
2012-02-09 3:36 ` David Ahern
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=4F32861C.5020907@gmail.com \
--to=dsahern@gmail.com \
--cc=acme@infradead.org \
--cc=avi@redhat.com \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=mtosatti@redhat.com \
--cc=stefanha@gmail.com \
--cc=xiaoguangrong.eric@gmail.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.