Skip to content

Commit

Permalink
perf auxtrace: Add option to synthesize events for transactions
Browse files Browse the repository at this point in the history
Add AUX area tracing option 'x' to synthesize events for transactions.
This will be used by Intel PT to synthesize an event record for each TSX
start, commit or abort.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1430404667-10593-6-git-send-email-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
  • Loading branch information
Adrian Hunter authored and Arnaldo Carvalho de Melo committed May 5, 2015
1 parent e31f0d0 commit 53c76b0
Show file tree
Hide file tree
Showing 5 changed files with 21 additions and 13 deletions.
9 changes: 5 additions & 4 deletions tools/perf/Documentation/perf-inject.txt
Original file line number Diff line number Diff line change
Expand Up @@ -52,11 +52,12 @@ OPTIONS
b synthesize branches events
c synthesize branches events (calls only)
r synthesize branches events (returns only)
x synthesize transactions events
e synthesize error events
d create a debug log
g synthesize a call chain for instructions events
g synthesize a call chain (use with i or x)

The default is all events i.e. the same as --itrace=ibe
The default is all events i.e. the same as --itrace=ibxe

In addition, the period (default 100000) for instructions events
can be specified in units of:
Expand All @@ -67,8 +68,8 @@ OPTIONS
us microseconds
ns nanoseconds (default)

Also the call chain size (default 16, max. 1024) for instructions
events can be specified.
Also the call chain size (default 16, max. 1024) for instructions or
transactions events can be specified.

SEE ALSO
--------
Expand Down
9 changes: 5 additions & 4 deletions tools/perf/Documentation/perf-report.txt
Original file line number Diff line number Diff line change
Expand Up @@ -331,11 +331,12 @@ OPTIONS
b synthesize branches events
c synthesize branches events (calls only)
r synthesize branches events (returns only)
x synthesize transactions events
e synthesize error events
d create a debug log
g synthesize a call chain for instructions events
g synthesize a call chain (use with i or x)

The default is all events i.e. the same as --itrace=ibe
The default is all events i.e. the same as --itrace=ibxe

In addition, the period (default 100000) for instructions events
can be specified in units of:
Expand All @@ -346,8 +347,8 @@ OPTIONS
us microseconds
ns nanoseconds (default)

Also the call chain size (default 16, max. 1024) for instructions
events can be specified.
Also the call chain size (default 16, max. 1024) for instructions or
transactions events can be specified.

To disable decoding entirely, use --no-itrace.

Expand Down
9 changes: 5 additions & 4 deletions tools/perf/Documentation/perf-script.txt
Original file line number Diff line number Diff line change
Expand Up @@ -235,11 +235,12 @@ OPTIONS
b synthesize branches events
c synthesize branches events (calls only)
r synthesize branches events (returns only)
x synthesize transactions events
e synthesize error events
d create a debug log
g synthesize a call chain for instructions events
g synthesize a call chain (use with i or x)

The default is all events i.e. the same as --itrace=ibe
The default is all events i.e. the same as --itrace=ibxe

In addition, the period (default 100000) for instructions events
can be specified in units of:
Expand All @@ -250,8 +251,8 @@ OPTIONS
us microseconds
ns nanoseconds (default)

Also the call chain size (default 16, max. 1024) for instructions
events can be specified.
Also the call chain size (default 16, max. 1024) for instructions or
transactions events can be specified.

To disable decoding entirely, use --no-itrace.

Expand Down
5 changes: 4 additions & 1 deletion tools/perf/util/auxtrace.c
Original file line number Diff line number Diff line change
Expand Up @@ -888,6 +888,7 @@ void itrace_synth_opts__set_default(struct itrace_synth_opts *synth_opts)
{
synth_opts->instructions = true;
synth_opts->branches = true;
synth_opts->transactions = true;
synth_opts->errors = true;
synth_opts->period_type = PERF_ITRACE_DEFAULT_PERIOD_TYPE;
synth_opts->period = PERF_ITRACE_DEFAULT_PERIOD;
Expand Down Expand Up @@ -960,6 +961,9 @@ int itrace_parse_synth_opts(const struct option *opt, const char *str,
case 'b':
synth_opts->branches = true;
break;
case 'x':
synth_opts->transactions = true;
break;
case 'e':
synth_opts->errors = true;
break;
Expand All @@ -975,7 +979,6 @@ int itrace_parse_synth_opts(const struct option *opt, const char *str,
synth_opts->returns = true;
break;
case 'g':
synth_opts->instructions = true;
synth_opts->callchain = true;
synth_opts->callchain_sz =
PERF_ITRACE_DEFAULT_CALLCHAIN_SZ;
Expand Down
2 changes: 2 additions & 0 deletions tools/perf/util/auxtrace.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,6 +54,7 @@ enum itrace_period_type {
* because 'perf inject' will write it out
* @instructions: whether to synthesize 'instructions' events
* @branches: whether to synthesize 'branches' events
* @transactions: whether to synthesize events for transactions
* @errors: whether to synthesize decoder error events
* @dont_decode: whether to skip decoding entirely
* @log: write a decoding log
Expand All @@ -69,6 +70,7 @@ struct itrace_synth_opts {
bool inject;
bool instructions;
bool branches;
bool transactions;
bool errors;
bool dont_decode;
bool log;
Expand Down

0 comments on commit 53c76b0

Please sign in to comment.