From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1754305AbdKNMkC (ORCPT ); Tue, 14 Nov 2017 07:40:02 -0500 Received: from mga06.intel.com ([134.134.136.31]:43975 "EHLO mga06.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753864AbdKNMjr (ORCPT ); Tue, 14 Nov 2017 07:39:47 -0500 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.44,393,1505804400"; d="scan'208";a="1243890941" From: Alexander Shishkin To: Peter Zijlstra , Arnaldo Carvalho de Melo Cc: Ingo Molnar , linux-kernel@vger.kernel.org, Will Deacon , Adrian Hunter , Alexander Shishkin Subject: [PATCH v1 3/4] perf tools: Add 'suppress_aux' attribute bit definition and fallback Date: Tue, 14 Nov 2017 14:30:23 +0200 Message-Id: <20171114123024.11517-4-alexander.shishkin@linux.intel.com> X-Mailer: git-send-email 2.13.1 In-Reply-To: <20171114123024.11517-1-alexander.shishkin@linux.intel.com> References: <20171114123024.11517-1-alexander.shishkin@linux.intel.com> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 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 --- 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