mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Adrian Hunter <adrian.hunter@intel.com>
To: Arnaldo Carvalho de Melo <acme@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>,
	linux-kernel@vger.kernel.org, David Ahern <dsahern@gmail.com>,
	Frederic Weisbecker <fweisbec@gmail.com>,
	Jiri Olsa <jolsa@redhat.com>, Namhyung Kim <namhyung@gmail.com>,
	Stephane Eranian <eranian@google.com>
Subject: Re: [PATCH V4 18/24] perf tools: Add Intel BTS support
Date: Wed, 06 May 2015 10:14:36 +0300	[thread overview]
Message-ID: <5549BF5C.7070906@intel.com> (raw)
In-Reply-To: <20150505210918.GZ10475@kernel.org>

On 06/05/15 00:09, Arnaldo Carvalho de Melo wrote:
> Em Tue, May 05, 2015 at 04:51:41PM -0300, Arnaldo Carvalho de Melo escreveu:
>> Em Thu, Apr 30, 2015 at 05:37:41PM +0300, Adrian Hunter escreveu:
>>> Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
>>> ---
>>>  tools/perf/Documentation/intel-bts.txt |  69 +++
>>>
>>> diff --git a/tools/perf/Documentation/intel-bts.txt b/tools/perf/Documentation/intel-bts.txt
>>> new file mode 100644
>>> index 0000000..7a79d36
>>> --- /dev/null
>>> +++ b/tools/perf/Documentation/intel-bts.txt
>>> @@ -0,0 +1,69 @@
>>> +Intel Branch Trace Store
>>> +========================
>>> +
>>> +perf record
>>> +===========
>>> +
>>> +new event
>>> +---------
>>> +
>>> +The Intel BTS kernel driver creates a new PMU for Intel BTS.  The perf record
>>> +option is:
>>> +
>>> +	-e intel_bts//
>>
>> So, I applied up where Jiri acked, and will process more, but without
>> digging deep, lemme ask you you could please reorder the patches so that
>> what is available in more machines can be tested first, i.e. I think
>> that on this machine:
>>
>> [acme@ssdandy ~]$ perf report --header --stdio
>> Error:
>> The perf.data file has no samples!
>> # ========
>> # captured on: Tue May  5 16:35:13 2015
>> # hostname : ssdandy.ghostprotocols.net
>> # os release : 4.0.0-rc6+
>> # perf version : 4.0.rc6.gef42845
>> # arch : x86_64
>> # nrcpus online : 8
>> # nrcpus avail : 8
>> # cpudesc : Intel(R) Core(TM) i7-2920XM CPU @ 2.50GHz
>> # cpuid : GenuineIntel,6,42,7
>> # total memory : 16318708 kB
>> # cmdline : /home/acme/bin/perf record --per-thread -e intel_bts//u ls 
>> # event : name = intel_bts//u, , type = 7, size = 112, { sample_period,
>> # sample_freq } = 4000, sample_type = IP|TID|PERIOD, disabled = 1,
>> # exclude_kernel = 1, exclude_hv = 1, mmap = 1, comm = 
>> # HEADER_CPU_TOPOLOGY info available, use -I to display
>> # HEADER_NUMA_TOPOLOGY info available, use -I to display
>> # pmu mappings: cpu = 4, intel_bts = 7, software = 1, power = 6,
>> # tracepoint = 2, breakpoint = 5
>> # ========
>> #
>> (END)
>>
>> It has BTS on the cpuinfo and yeah, intel_bts is there on the pmu
>> mappings.
>>
>> So, this is what I have from you already merged:
>>
>> [acme@ssdandy linux]$ git log --oneline --author hunter | head -20
>> 030026db927b perf record: Add AUX area tracing Snapshot Mode support
>> 1715de1a37b5 perf tools: Add AUX area tracing Snapshot Mode
>> 41a38c374351 perf tools: Add support for PERF_RECORD_ITRACE_START
>> c11e07a556d0 perf tools: Add support for PERF_RECORD_AUX
>> 61c90246aeeb perf auxtrace: Add option to synthesize events for transactions
>> 8214d444516a perf tools: Add build option NO_AUXTRACE to exclude AUX area tracing
>> cd10b2895205 perf tools: Hit all build ids when AUX area tracing
>> 99fa29845349 perf tools: Add AUX area tracing index
>> 64a7e61f11a2 perf report: Fix placement of itrace option in documentation
>> 520a2ebc2f0b perf report: Add Instruction Tracing support
>> 6d5cdd64f314 perf script: Always allow fields 'addr' and 'cpu' for auxtrace
>> b72e74d1f140 perf evlist: Amend mmap ref counting for the AUX area mmap
>> 70d73de4cd57 perf tools: Add aux_watermark member of struct perf_event_attr
>> 400ea6d327ff perf script: Add field option 'flags' to print sample flags
>> 0f0aa5e0693c perf inject: Add Instruction Tracing support
>> cd17a9b54463 perf inject: Re-pipe AUX area tracing events
>> 7a680eb990b6 perf script: Add Instruction Tracing support
>> cfe9174fcfe2 perf tools: Add member to struct dso for an instruction cache
>> c3278f0231e8 perf auxtrace: Add a hashtable for caching
>> 73f75fb1bdc5 perf auxtrace: Add processing for AUX area tracing events
>> [acme@ssdandy linux]$
>>
>> Will try processing these BTS first, i.e. do the reorder here,
> 
> Not that easy...

I am not sure what can be done.

Any version of perf will accept a PMU event, so users can select
intel_bts or intel_pt even though the tools have no support :-(

For example, a v4.0 perf with no auxtrace/intel_bs/intel_pt support
but with a kernel that does support intel_bts or intel_pt
gives:

$ tools/perf/perf record -e intel_bts//u ls
arch   COPYING  crypto         drivers   fs       init  Kbuild   kernel  MAINTAINERS  mm   perf.data      README          samples  security  tools  virt
block  CREDITS  Documentation  firmware  include  ipc   Kconfig  lib     Makefile     net  perf.data.old  REPORTING-BUGS  scripts  sound     usr
[ perf record: Woken up 1 times to write data ]
0x1f00 [0x20]: failed to process type: 12
Warning:
Found 1 unknown events!

Is this an older tool processing a perf.data file generated by a more recent tool?

If that is not the case, consider reporting to linux-kernel@vger.kernel.org.

[ perf record: Captured and wrote 0.009 MB perf.data ]
$ tools/perf/perf report --header --stdio
Warning:
Found 1 unknown events!

Is this an older tool processing a perf.data file generated by a more recent tool?

If that is not the case, consider reporting to linux-kernel@vger.kernel.org.

# ========
# captured on: Wed May  6 09:55:00 2015
# hostname : bdw03
# os release : 4.0.0-rc6+
# perf version : 4.0.g39a880
# arch : x86_64
# nrcpus online : 4
# nrcpus avail : 4
# cpudesc : Intel(R) Core(TM) i5-5###U CPU @ 2.20GHz
# cpuid : GenuineIntel,6,61,4
# total memory : 3960092 kB
# cmdline : /home/ahunter/git/linux/tools/perf/perf record -e intel_bts//u ls 
# event : name = intel_bts//u, type = 7, config = 0x0, config1 = 0x0, config2 = 0x0, excl_usr = 0, excl_kern = 1, excl_host = 0, excl_guest = 0, precise_ip = 0, attr_mmap2 = 1, attr_mmap  = 1, attr_mm
# HEADER_CPU_TOPOLOGY info available, use -I to display
# HEADER_NUMA_TOPOLOGY info available, use -I to display
# pmu mappings: cpu = 4, intel_bts = 7, software = 1, tracepoint = 2, breakpoint = 5, intel_pt = 6
# ========
#


Perhaps we should disallow intel_bts and intel_pt PMU events
explicitly and put that change back to v4.1 stable at least?

I tried adding:

diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c
index 244c66f..5d3ab7c 100644
--- a/tools/perf/util/pmu.c
+++ b/tools/perf/util/pmu.c
@@ -442,6 +442,10 @@ static struct perf_pmu *pmu_lookup(const char *name)
        LIST_HEAD(aliases);
        __u32 type;
 
+       /* No support for intel_bts or intel_pt so disallow them */
+       if (!strcmp(name, "intel_bts") || !strcmp(name, "intel_pt"))
+               return NULL;
+
        /*
         * The pmu data we store & need consists of the pmu
         * type value and format definitions. Load both right


And now I get:

$ tools/perf/perf record -e intel_bts//u ls
invalid or unsupported event: 'intel_bts//u'
Run 'perf list' for a list of valid events

 usage: perf record [<options>] [<command>]
    or: perf record [<options>] -- <command> [<options>]

    -e, --event <event>   event selector. use 'perf list' to list available events




  reply	other threads:[~2015-05-06  7:17 UTC|newest]

Thread overview: 51+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-04-30 14:37 [PATCH V4 00/24] perf tools: Introduce an abstraction for AUX Area and Instruction Tracing Adrian Hunter
2015-04-30 14:37 ` [PATCH V4 01/24] perf report: Fix placement of itrace option in documentation Adrian Hunter
2015-05-06  3:15   ` [tip:perf/core] " tip-bot for Adrian Hunter
2015-04-30 14:37 ` [PATCH V4 02/24] perf tools: Add AUX area tracing index Adrian Hunter
2015-05-04 20:02   ` Jiri Olsa
2015-05-06  3:16   ` [tip:perf/core] " tip-bot for Adrian Hunter
2015-04-30 14:37 ` [PATCH V4 03/24] perf tools: Hit all build ids when AUX area tracing Adrian Hunter
2015-05-04 20:03   ` Jiri Olsa
2015-05-06  3:16   ` [tip:perf/core] " tip-bot for Adrian Hunter
2015-04-30 14:37 ` [PATCH V4 04/24] perf tools: Add build option NO_AUXTRACE to exclude " Adrian Hunter
2015-05-04 20:06   ` Jiri Olsa
2015-05-06  3:16   ` [tip:perf/core] " tip-bot for Adrian Hunter
2015-04-30 14:37 ` [PATCH V4 05/24] perf auxtrace: Add option to synthesize events for transactions Adrian Hunter
2015-05-04 20:08   ` Jiri Olsa
2015-05-06  3:17   ` [tip:perf/core] " tip-bot for Adrian Hunter
2015-04-30 14:37 ` [PATCH V4 06/24] perf tools: Add support for PERF_RECORD_AUX Adrian Hunter
2015-05-04 20:09   ` Jiri Olsa
2015-05-06  3:17   ` [tip:perf/core] " tip-bot for Adrian Hunter
2015-04-30 14:37 ` [PATCH V4 07/24] perf tools: Add support for PERF_RECORD_ITRACE_START Adrian Hunter
2015-05-04 20:10   ` Jiri Olsa
2015-05-06  3:17   ` [tip:perf/core] " tip-bot for Adrian Hunter
2015-04-30 14:37 ` [PATCH V4 08/24] perf tools: Add AUX area tracing Snapshot Mode Adrian Hunter
2015-05-04 20:10   ` Jiri Olsa
2015-05-06  3:17   ` [tip:perf/core] " tip-bot for Adrian Hunter
2015-04-30 14:37 ` [PATCH V4 09/24] perf record: Add AUX area tracing Snapshot Mode support Adrian Hunter
2015-05-04 20:11   ` Jiri Olsa
2015-05-06  3:18   ` [tip:perf/core] " tip-bot for Adrian Hunter
2015-04-30 14:37 ` [PATCH V4 10/24] perf auxtrace: Add Intel PT as an AUX area tracing type Adrian Hunter
2015-05-04 20:11   ` Jiri Olsa
2015-04-30 14:37 ` [PATCH V4 11/24] perf tools: Add Intel PT packet decoder Adrian Hunter
2015-04-30 14:37 ` [PATCH V4 12/24] perf tools: Add Intel PT instruction decoder Adrian Hunter
2015-04-30 14:37 ` [PATCH V4 13/24] perf tools: Add Intel PT log Adrian Hunter
2015-04-30 14:37 ` [PATCH V4 14/24] perf tools: Add Intel PT decoder Adrian Hunter
2015-05-11 13:22   ` Arnaldo Carvalho de Melo
2015-05-21 12:58     ` Adrian Hunter
2015-04-30 14:37 ` [PATCH V4 15/24] perf tools: Add Intel PT support Adrian Hunter
2015-04-30 14:37 ` [PATCH V4 16/24] perf tools: Take Intel PT into use Adrian Hunter
2015-04-30 14:37 ` [PATCH V4 17/24] perf tools: Allow auxtrace data alignment Adrian Hunter
2015-04-30 14:37 ` [PATCH V4 18/24] perf tools: Add Intel BTS support Adrian Hunter
2015-05-05 19:51   ` Arnaldo Carvalho de Melo
2015-05-05 21:09     ` Arnaldo Carvalho de Melo
2015-05-06  7:14       ` Adrian Hunter [this message]
2015-05-06 13:35         ` Arnaldo Carvalho de Melo
2015-05-07  7:05           ` Adrian Hunter
2015-05-08 19:41             ` Arnaldo Carvalho de Melo
2015-04-30 14:37 ` [PATCH V4 19/24] perf tools: Output sample flags and insn_len from intel_pt Adrian Hunter
2015-04-30 14:37 ` [PATCH V4 20/24] perf tools: Output sample flags and insn_len from intel_bts Adrian Hunter
2015-04-30 14:37 ` [PATCH V4 21/24] perf tools: Intel PT to always update thread stack trace number Adrian Hunter
2015-04-30 14:37 ` [PATCH V4 22/24] perf tools: Intel BTS " Adrian Hunter
2015-04-30 14:37 ` [PATCH V4 23/24] perf tools: Add example call-graph script Adrian Hunter
2015-04-30 14:37 ` [PATCH V4 24/24] perf tools: Put itrace options into an asciidoc include Adrian Hunter

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=5549BF5C.7070906@intel.com \
    --to=adrian.hunter@intel.com \
    --cc=acme@kernel.org \
    --cc=dsahern@gmail.com \
    --cc=eranian@google.com \
    --cc=fweisbec@gmail.com \
    --cc=jolsa@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=namhyung@gmail.com \
    --cc=peterz@infradead.org \
    /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

Powered by JetHome