summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAdrian Hunter <adrian.hunter@intel.com>2015-04-30 17:37:28 +0300
committerArnaldo Carvalho de Melo <acme@redhat.com>2015-05-05 18:12:55 -0300
commit53c76b0e9ed5ed1f00371160f0be60402acba165 (patch)
treee04ff300ba98a33bdef77d1e13fa65244d1cc68a
parente31f0d017ea19fce9f12f084e1c750a0e3b43680 (diff)
perf auxtrace: Add option to synthesize events for transactions
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>
-rw-r--r--tools/perf/Documentation/perf-inject.txt9
-rw-r--r--tools/perf/Documentation/perf-report.txt9
-rw-r--r--tools/perf/Documentation/perf-script.txt9
-rw-r--r--tools/perf/util/auxtrace.c5
-rw-r--r--tools/perf/util/auxtrace.h2
5 files changed, 21 insertions, 13 deletions
diff --git a/tools/perf/Documentation/perf-inject.txt b/tools/perf/Documentation/perf-inject.txt
index bb1f655e1361..b876ae312699 100644
--- a/tools/perf/Documentation/perf-inject.txt
+++ b/tools/perf/Documentation/perf-inject.txt
@@ -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:
@@ -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
--------
diff --git a/tools/perf/Documentation/perf-report.txt b/tools/perf/Documentation/perf-report.txt
index b771340d193d..27190ed06f9c 100644
--- a/tools/perf/Documentation/perf-report.txt
+++ b/tools/perf/Documentation/perf-report.txt
@@ -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:
@@ -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.
diff --git a/tools/perf/Documentation/perf-script.txt b/tools/perf/Documentation/perf-script.txt
index b29cd2f17d13..c82df572fac2 100644
--- a/tools/perf/Documentation/perf-script.txt
+++ b/tools/perf/Documentation/perf-script.txt
@@ -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:
@@ -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.
diff --git a/tools/perf/util/auxtrace.c b/tools/perf/util/auxtrace.c
index 28ce134a61ad..129371048fc1 100644
--- a/tools/perf/util/auxtrace.c
+++ b/tools/perf/util/auxtrace.c
@@ -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;
@@ -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;
@@ -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;
diff --git a/tools/perf/util/auxtrace.h b/tools/perf/util/auxtrace.h
index 77b46994e8ea..8c6cbb123fe5 100644
--- a/tools/perf/util/auxtrace.h
+++ b/tools/perf/util/auxtrace.h
@@ -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
@@ -69,6 +70,7 @@ struct itrace_synth_opts {
bool inject;
bool instructions;
bool branches;
+ bool transactions;
bool errors;
bool dont_decode;
bool log;