1
0
Fork 0

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>
hifive-unleashed-5.1
Adrian Hunter 2015-04-30 17:37:28 +03:00 committed by Arnaldo Carvalho de Melo
parent e31f0d017e
commit 53c76b0e9e
5 changed files with 21 additions and 13 deletions

View File

@ -52,11 +52,12 @@ OPTIONS
b synthesize branches events b synthesize branches events
c synthesize branches events (calls only) c synthesize branches events (calls only)
r synthesize branches events (returns only) r synthesize branches events (returns only)
x synthesize transactions events
e synthesize error events e synthesize error events
d create a debug log 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 In addition, the period (default 100000) for instructions events
can be specified in units of: can be specified in units of:
@ -67,8 +68,8 @@ OPTIONS
us microseconds us microseconds
ns nanoseconds (default) ns nanoseconds (default)
Also the call chain size (default 16, max. 1024) for instructions Also the call chain size (default 16, max. 1024) for instructions or
events can be specified. transactions events can be specified.
SEE ALSO SEE ALSO
-------- --------

View File

@ -331,11 +331,12 @@ OPTIONS
b synthesize branches events b synthesize branches events
c synthesize branches events (calls only) c synthesize branches events (calls only)
r synthesize branches events (returns only) r synthesize branches events (returns only)
x synthesize transactions events
e synthesize error events e synthesize error events
d create a debug log 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 In addition, the period (default 100000) for instructions events
can be specified in units of: can be specified in units of:
@ -346,8 +347,8 @@ OPTIONS
us microseconds us microseconds
ns nanoseconds (default) ns nanoseconds (default)
Also the call chain size (default 16, max. 1024) for instructions Also the call chain size (default 16, max. 1024) for instructions or
events can be specified. transactions events can be specified.
To disable decoding entirely, use --no-itrace. To disable decoding entirely, use --no-itrace.

View File

@ -235,11 +235,12 @@ OPTIONS
b synthesize branches events b synthesize branches events
c synthesize branches events (calls only) c synthesize branches events (calls only)
r synthesize branches events (returns only) r synthesize branches events (returns only)
x synthesize transactions events
e synthesize error events e synthesize error events
d create a debug log 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 In addition, the period (default 100000) for instructions events
can be specified in units of: can be specified in units of:
@ -250,8 +251,8 @@ OPTIONS
us microseconds us microseconds
ns nanoseconds (default) ns nanoseconds (default)
Also the call chain size (default 16, max. 1024) for instructions Also the call chain size (default 16, max. 1024) for instructions or
events can be specified. transactions events can be specified.
To disable decoding entirely, use --no-itrace. To disable decoding entirely, use --no-itrace.

View File

@ -888,6 +888,7 @@ void itrace_synth_opts__set_default(struct itrace_synth_opts *synth_opts)
{ {
synth_opts->instructions = true; synth_opts->instructions = true;
synth_opts->branches = true; synth_opts->branches = true;
synth_opts->transactions = true;
synth_opts->errors = true; synth_opts->errors = true;
synth_opts->period_type = PERF_ITRACE_DEFAULT_PERIOD_TYPE; synth_opts->period_type = PERF_ITRACE_DEFAULT_PERIOD_TYPE;
synth_opts->period = PERF_ITRACE_DEFAULT_PERIOD; 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': case 'b':
synth_opts->branches = true; synth_opts->branches = true;
break; break;
case 'x':
synth_opts->transactions = true;
break;
case 'e': case 'e':
synth_opts->errors = true; synth_opts->errors = true;
break; break;
@ -975,7 +979,6 @@ int itrace_parse_synth_opts(const struct option *opt, const char *str,
synth_opts->returns = true; synth_opts->returns = true;
break; break;
case 'g': case 'g':
synth_opts->instructions = true;
synth_opts->callchain = true; synth_opts->callchain = true;
synth_opts->callchain_sz = synth_opts->callchain_sz =
PERF_ITRACE_DEFAULT_CALLCHAIN_SZ; PERF_ITRACE_DEFAULT_CALLCHAIN_SZ;

View File

@ -54,6 +54,7 @@ enum itrace_period_type {
* because 'perf inject' will write it out * because 'perf inject' will write it out
* @instructions: whether to synthesize 'instructions' events * @instructions: whether to synthesize 'instructions' events
* @branches: whether to synthesize 'branches' events * @branches: whether to synthesize 'branches' events
* @transactions: whether to synthesize events for transactions
* @errors: whether to synthesize decoder error events * @errors: whether to synthesize decoder error events
* @dont_decode: whether to skip decoding entirely * @dont_decode: whether to skip decoding entirely
* @log: write a decoding log * @log: write a decoding log
@ -69,6 +70,7 @@ struct itrace_synth_opts {
bool inject; bool inject;
bool instructions; bool instructions;
bool branches; bool branches;
bool transactions;
bool errors; bool errors;
bool dont_decode; bool dont_decode;
bool log; bool log;