[PATCH 04/11] perf auxtrace: Add optional error flags to the itrace 'e' option

Adrian Hunter
2020-07-09T17:37:21Z

Allow the 'e' option to be followed by an architecture-specific number
which flags what kind of errors will or will not be reported.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
---
tools/perf/Documentation/itrace.txt | 3 +++
tools/perf/util/auxtrace.c | 2 ++
tools/perf/util/auxtrace.h | 2 ++
3 files changed, 7 insertions(+)

diff --git a/tools/perf/Documentation/itrace.txt b/tools/perf/Documentation/itrace.txt
index e817179c5027..34864b4047ed 100644
--- a/tools/perf/Documentation/itrace.txt
+++ b/tools/perf/Documentation/itrace.txt
@@ -47,3 +47,6 @@
--itrace=i0nss1000000

skips the first million instructions.
+
+ The 'e' option may be followed by an architecture-specific number which
+ flags what kind of errors will or will not be reported.
diff --git a/tools/perf/util/auxtrace.c b/tools/perf/util/auxtrace.c
index 25c639ac4ad4..5cfc0b12b2b3 100644
--- a/tools/perf/util/auxtrace.c
+++ b/tools/perf/util/auxtrace.c
@@ -1436,6 +1436,8 @@ int itrace_parse_synth_opts(const struct option *opt, const char *str,
break;
case 'e':
synth_opts->errors = true;
+ synth_opts->error_flags = strtoul(p, &endptr, 0);
+ p = endptr;
break;
case 'd':
synth_opts->log = true;
diff --git a/tools/perf/util/auxtrace.h b/tools/perf/util/auxtrace.h
index 142ccf7d34df..a04475f41f28 100644
--- a/tools/perf/util/auxtrace.h
+++ b/tools/perf/util/auxtrace.h
@@ -91,6 +91,7 @@ enum itrace_period_type {
* @cpu_bitmap: CPUs for which to synthesize events, or NULL for all
* @ptime_range: time intervals to trace or NULL
* @range_num: number of time intervals to trace
+ * @error_flags: arch-specific flags to affect what errors are reported
*/
struct itrace_synth_opts {
bool set;
@@ -124,6 +125,7 @@ struct itrace_synth_opts {
unsigned long *cpu_bitmap;
struct perf_time_interval *ptime_range;
int range_num;
+ unsigned int error_flags;
};

/**
--
2.25.1