Skip to content

Commit

Permalink
perf auxtrace: Add optional log flags to the itrace 'd' option
Browse files Browse the repository at this point in the history
Allow the 'd' option to be followed by flags which will affect what debug
messages will or will not be reported. Each flag must be preceded by either
'+' or '-'. The flags are:
	a	all perf events

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Reviewed-by: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Link: http://lore.kernel.org/lkml/20200710151104.15137-8-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 Aug 6, 2020
1 parent 1d846ae commit 935aac2
Show file tree
Hide file tree
Showing 3 changed files with 17 additions and 1 deletion.
5 changes: 5 additions & 0 deletions tools/perf/Documentation/itrace.txt
Original file line number Diff line number Diff line change
Expand Up @@ -53,3 +53,8 @@
The flags are:
o overflow
l trace data lost

If supported, the 'd' option may be followed by flags which affect what
debug messages will or will not be logged. Each flag must be preceded
by either '+' or '-'. The flags are:
a all perf events
3 changes: 3 additions & 0 deletions tools/perf/util/auxtrace.c
Original file line number Diff line number Diff line change
Expand Up @@ -1483,6 +1483,9 @@ int itrace_parse_synth_opts(const struct option *opt, const char *str,
break;
case 'd':
synth_opts->log = true;
if (get_flags(&p, &synth_opts->log_plus_flags,
&synth_opts->log_minus_flags))
goto out_err;
break;
case 'c':
synth_opts->branches = true;
Expand Down
10 changes: 9 additions & 1 deletion tools/perf/util/auxtrace.h
Original file line number Diff line number Diff line change
Expand Up @@ -58,6 +58,8 @@ enum itrace_period_type {
#define AUXTRACE_ERR_FLG_OVERFLOW (1 << ('o' - 'a'))
#define AUXTRACE_ERR_FLG_DATA_LOST (1 << ('l' - 'a'))

#define AUXTRACE_LOG_FLG_ALL_PERF_EVTS (1 << ('a' - 'a'))

/**
* struct itrace_synth_opts - AUX area tracing synthesis options.
* @set: indicates whether or not options have been set
Expand Down Expand Up @@ -96,6 +98,8 @@ enum itrace_period_type {
* @range_num: number of time intervals to trace
* @error_plus_flags: flags to affect what errors are reported
* @error_minus_flags: flags to affect what errors are reported
* @log_plus_flags: flags to affect what is logged
* @log_minus_flags: flags to affect what is logged
*/
struct itrace_synth_opts {
bool set;
Expand Down Expand Up @@ -131,6 +135,8 @@ struct itrace_synth_opts {
int range_num;
unsigned int error_plus_flags;
unsigned int error_minus_flags;
unsigned int log_plus_flags;
unsigned int log_minus_flags;
};

/**
Expand Down Expand Up @@ -624,7 +630,9 @@ bool auxtrace__evsel_is_auxtrace(struct perf_session *session,
" each flag must be preceded by + or -\n" \
" error flags are: o (overflow)\n" \
" l (data lost)\n" \
" d: create a debug log\n" \
" d[flags]: create a debug log\n" \
" each flag must be preceded by + or -\n" \
" log flags are: a (all perf events)\n" \
" f: synthesize first level cache events\n" \
" m: synthesize last level cache events\n" \
" t: synthesize TLB events\n" \
Expand Down

0 comments on commit 935aac2

Please sign in to comment.