This adds support for suppress_aux, the switch that enables suppressing not-so-useful PERF_RECORD_AUX records. Also handle kernels where it's not supported.
Signed-off-by: Alexander Shishkin <alexander.shish...@linux.intel.com> --- tools/perf/util/evsel.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/tools/perf/util/evsel.c b/tools/perf/util/evsel.c index f894893c203d..794e56b42c20 100644 --- a/tools/perf/util/evsel.c +++ b/tools/perf/util/evsel.c @@ -50,6 +50,7 @@ static struct { bool lbr_flags; bool write_backward; bool group_read; + bool suppress_aux; } perf_missing_features; static clockid_t clockid; @@ -1570,6 +1571,7 @@ int perf_event_attr__fprintf(FILE *fp, struct perf_event_attr *attr, PRINT_ATTRf(use_clockid, p_unsigned); PRINT_ATTRf(context_switch, p_unsigned); PRINT_ATTRf(write_backward, p_unsigned); + PRINT_ATTRf(suppress_aux, p_unsigned); PRINT_ATTRn("{ wakeup_events, wakeup_watermark }", wakeup_events, p_unsigned); PRINT_ATTRf(bp_type, p_unsigned); @@ -1686,6 +1688,8 @@ int perf_evsel__open(struct perf_evsel *evsel, struct cpu_map *cpus, PERF_SAMPLE_BRANCH_NO_CYCLES); if (perf_missing_features.group_read && evsel->attr.inherit) evsel->attr.read_format &= ~(PERF_FORMAT_GROUP|PERF_FORMAT_ID); + if (perf_missing_features.suppress_aux && evsel->attr.suppress_aux) + evsel->attr.suppress_aux = 0; retry_sample_id: if (perf_missing_features.sample_id_all) evsel->attr.sample_id_all = 0; @@ -1847,6 +1851,11 @@ int perf_evsel__open(struct perf_evsel *evsel, struct cpu_map *cpus, perf_missing_features.group_read = true; pr_debug2("switching off group read\n"); goto fallback_missing_features; + } else if (!perf_missing_features.suppress_aux && + evsel->attr.suppress_aux) { + perf_missing_features.suppress_aux = true; + pr_debug2("switching off suppress_aux\n"); + goto fallback_missing_features; } out_close: do { -- 2.15.0