summaryrefslogtreecommitdiff
path: root/tools/perf/util
diff options
context:
space:
mode:
authorAdrian Hunter <adrian.hunter@intel.com>2020-07-10 18:10:59 +0300
committerArnaldo Carvalho de Melo <acme@redhat.com>2020-08-06 14:22:38 +0300
commit935aac2d2dc42c6ea9f0143a57e8d57d976d5307 (patch)
treea1254fe4e5eb81d55adeb93ef3f7fd1f94e898c4 /tools/perf/util
parent1d846aeb86cc6e9db1cf08822404c95ecb8bd6c1 (diff)
downloadlinux-935aac2d2dc42c6ea9f0143a57e8d57d976d5307.tar.xz
perf auxtrace: Add optional log flags to the itrace 'd' option
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>
Diffstat (limited to 'tools/perf/util')
-rw-r--r--tools/perf/util/auxtrace.c3
-rw-r--r--tools/perf/util/auxtrace.h10
2 files changed, 12 insertions, 1 deletions
diff --git a/tools/perf/util/auxtrace.c b/tools/perf/util/auxtrace.c
index f0b0758830ee..e028187c51fe 100644
--- a/tools/perf/util/auxtrace.c
+++ b/tools/perf/util/auxtrace.c
@@ -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;
diff --git a/tools/perf/util/auxtrace.h b/tools/perf/util/auxtrace.h
index cfe6d00d8624..821ef5446a13 100644
--- a/tools/perf/util/auxtrace.h
+++ b/tools/perf/util/auxtrace.h
@@ -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
@@ -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;
@@ -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;
};
/**
@@ -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" \