Commit 8ee9a9ab authored by Adrian Hunter's avatar Adrian Hunter Committed by Arnaldo Carvalho de Melo

perf auxtrace: Add itrace option "I"

Add itrace option "I" to synthesize interrupt or similar (asynchronous)
events. This will be used for Intel PT Event Trace events.
Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Link: https://lore.kernel.org/r/20220124084201.2699795-13-adrian.hunter@intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 1d0dc1dd
...@@ -7,6 +7,8 @@ ...@@ -7,6 +7,8 @@
p synthesize power events (incl. PSB events for Intel PT) p synthesize power events (incl. PSB events for Intel PT)
o synthesize other events recorded due to the use o synthesize other events recorded due to the use
of aux-output (refer to perf record) of aux-output (refer to perf record)
I synthesize interrupt or similar (asynchronous) events
(e.g. Intel PT Event Trace)
e synthesize error events e synthesize error events
d create a debug log d create a debug log
f synthesize first level cache events f synthesize first level cache events
......
...@@ -1333,6 +1333,7 @@ void itrace_synth_opts__set_default(struct itrace_synth_opts *synth_opts, ...@@ -1333,6 +1333,7 @@ void itrace_synth_opts__set_default(struct itrace_synth_opts *synth_opts,
synth_opts->ptwrites = true; synth_opts->ptwrites = true;
synth_opts->pwr_events = true; synth_opts->pwr_events = true;
synth_opts->other_events = true; synth_opts->other_events = true;
synth_opts->intr_events = true;
synth_opts->errors = true; synth_opts->errors = true;
synth_opts->flc = true; synth_opts->flc = true;
synth_opts->llc = true; synth_opts->llc = true;
...@@ -1479,6 +1480,9 @@ int itrace_do_parse_synth_opts(struct itrace_synth_opts *synth_opts, ...@@ -1479,6 +1480,9 @@ int itrace_do_parse_synth_opts(struct itrace_synth_opts *synth_opts,
case 'o': case 'o':
synth_opts->other_events = true; synth_opts->other_events = true;
break; break;
case 'I':
synth_opts->intr_events = true;
break;
case 'e': case 'e':
synth_opts->errors = true; synth_opts->errors = true;
if (get_flags(&p, &synth_opts->error_plus_flags, if (get_flags(&p, &synth_opts->error_plus_flags,
......
...@@ -76,6 +76,7 @@ enum itrace_period_type { ...@@ -76,6 +76,7 @@ enum itrace_period_type {
* @pwr_events: whether to synthesize power events * @pwr_events: whether to synthesize power events
* @other_events: whether to synthesize other events recorded due to the use of * @other_events: whether to synthesize other events recorded due to the use of
* aux_output * aux_output
* @intr_events: whether to synthesize interrupt events
* @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
...@@ -120,6 +121,7 @@ struct itrace_synth_opts { ...@@ -120,6 +121,7 @@ struct itrace_synth_opts {
bool ptwrites; bool ptwrites;
bool pwr_events; bool pwr_events;
bool other_events; bool other_events;
bool intr_events;
bool errors; bool errors;
bool dont_decode; bool dont_decode;
bool log; bool log;
...@@ -636,6 +638,8 @@ bool auxtrace__evsel_is_auxtrace(struct perf_session *session, ...@@ -636,6 +638,8 @@ bool auxtrace__evsel_is_auxtrace(struct perf_session *session,
" p: synthesize power events\n" \ " p: synthesize power events\n" \
" o: synthesize other events recorded due to the use\n" \ " o: synthesize other events recorded due to the use\n" \
" of aux-output (refer to perf record)\n" \ " of aux-output (refer to perf record)\n" \
" I: synthesize interrupt or similar (asynchronous) events\n" \
" (e.g. Intel PT Event Trace)\n" \
" e[flags]: synthesize error events\n" \ " e[flags]: synthesize error events\n" \
" each flag must be preceded by + or -\n" \ " each flag must be preceded by + or -\n" \
" error flags are: o (overflow)\n" \ " error flags are: o (overflow)\n" \
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment