From: Ravi Bangoria <ravi.bangoria@linux.vnet.ibm.com>
To: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: linux-kernel@vger.kernel.org, hemant@linux.vnet.ibm.com,
naveen.n.rao@linux.vnet.ibm.com
Subject: Re: [RFC 1/4] perf kvm: Enable 'record' on powerpc
Date: Mon, 28 Mar 2016 16:28:45 +0530 [thread overview]
Message-ID: <56F90E65.4030809@linux.vnet.ibm.com> (raw)
In-Reply-To: <20160324211528.GD32162@kernel.org>
Thanks Arnaldo for putting the effort.
I've tested this patch on powerpc and it looks fine to me. Please find
my below comments.
On Friday 25 March 2016 02:45 AM, Arnaldo Carvalho de Melo wrote:
> Em Tue, Mar 22, 2016 at 11:19:21PM -0300, Arnaldo Carvalho de Melo escreveu:
>> Em Tue, Mar 22, 2016 at 04:12:11PM -0300, Arnaldo Carvalho de Melo escreveu:
>>> Em Wed, Feb 24, 2016 at 02:37:42PM +0530, Ravi Bangoria escreveu:
>>>> 'perf kvm record' is not available on powerpc because 'perf' relies on
>>>> the 'cycles' event (a PMU event) to profile the guest. However, for
>>>> powerpc, this can't be used from the host because the PMUs are controlled
>>>> by the guest rather than the host.
>>>>
>>>> There exists a tracepoint 'kvm_hv:kvm_guest_exit' in powerpc which is
>>>> hit whenever any of the threads exit the guest context. The guest
>>>> instruction pointer dumped along with this tracepoint data in the field
>>>> 'pc', can be used as guest instruction pointer.
>>>>
>>>> This patch changes default event as kvm_hv:kvm_guest_exit for recording
>>>> guest data in host on powerpc. As we are using host event to record guest
>>>> data, this approach will enable only --guest option of 'perf kvm'. Still
>>>> --host --guest together won't work.
>>> It should, i.e. --host --guest should translate to:
>>>
>>> -e cycles:H,kvm_hv:kvm_guest_exit
>>>
>>> I.e. both collect cycles only in the host, and also the tracepoint that
>>> will allow us to get the guest approximation for the unavailable cycles
>>> event, no?
>>>
>>> I'm putting the infrastructure work needed for this the perf/cpumode
>>> branch. More work will be put there soon.
>> So I took a different path and made perf_evsel__parse_sample set a new
>> perf_sample.cpumode field, this way we'll end up having just to set a
>> per-evsel ->post_parse_sample() callback for the event that replaces
>> "cycles" for PPC guests where we'll just set data->ip and data->cpumode,
>> the rest of the code remains unchanged.
>>
>> The changes I made looks useful in itself, as, IIRC more code was
>> removed than added.
>>
>> I'll continue tomorrow and will test with the kvm:kvm_exit on x86_64 for
>> testing, that has:
> Ok, so the infrastructure got merged already and from there the next
> steps are in running with:
>
> perf kvm --guest record -a -e cycles:H,kvm:kvm_exit
>
> And then, with the patch below applied, try:
>
> perf kvm --guestkallsyms kallsyms.guest --guestmodules modules.guest report -i perf.data.guest --munge-ppc-guest-sample kvm:kvm_exit
The initial proposal was to change the default event as "kvm_guest_exit"
for kvm recording/reporting
on ppc. If I understand it correctly, your patch creates a handler for
reporting kvm events
based on "munge_ppc_guest_event" and the required tracepoint i.e., we
need to mention the
required tracepoint event name for recording and reporting.
There might be a little bit of an issue here. For scripts which depend
on generic perf kvm record/report,
we need to change those appropriately to prevent those from failing on
powerpc. Otherwise, (just a
thought) can we create some kind of an alias to map the ppc specific
perf kvm commands with the
generic perf kvm.
For e.g :
perf kvm record -e "kvm_hv:kvm_guest_exit" mapped to perf kvm record
&
perf kvm report --munge-ppc-guest-sample kvm_hv:kvm_guest_exit mapped
to perf kvm report.
Regards,
Ravi
next prev parent reply other threads:[~2016-03-28 10:58 UTC|newest]
Thread overview: 18+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-02-24 9:07 [RFC 0/4] perf kvm: Guest Symbol Resolution for powerpc Ravi Bangoria
2016-02-24 9:07 ` [RFC 1/4] perf kvm: Enable 'record' on powerpc Ravi Bangoria
2016-03-22 19:12 ` Arnaldo Carvalho de Melo
2016-03-23 2:19 ` Arnaldo Carvalho de Melo
2016-03-24 21:15 ` Arnaldo Carvalho de Melo
2016-03-28 10:58 ` Ravi Bangoria [this message]
2016-03-28 12:28 ` Arnaldo Carvalho de Melo
2016-04-27 12:32 ` Ravi Bangoria
2016-04-27 21:47 ` Arnaldo Carvalho de Melo
2016-05-09 14:58 ` Ravi Bangoria
2016-02-24 9:07 ` [RFC 2/4] perf kvm: Introduce evsel as argument to perf_event__preprocess_sample Ravi Bangoria
2016-02-24 9:07 ` [RFC 3/4] perf kvm: Enable 'report' on powerpc Ravi Bangoria
2016-02-24 9:07 ` [RFC 4/4] perf kvm: Fix output fields instead of 'trace' for perf kvm report " Ravi Bangoria
2016-03-02 14:25 ` Arnaldo Carvalho de Melo
2016-03-02 15:46 ` Ravi Bangoria
2016-03-02 16:22 ` Arnaldo Carvalho de Melo
2016-03-03 1:19 ` Ravi Bangoria
2016-03-08 15:42 ` Ravi Bangoria
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=56F90E65.4030809@linux.vnet.ibm.com \
--to=ravi.bangoria@linux.vnet.ibm.com \
--cc=acme@kernel.org \
--cc=hemant@linux.vnet.ibm.com \
--cc=linux-kernel@vger.kernel.org \
--cc=naveen.n.rao@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).