From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S941706AbcJSRuI (ORCPT ); Wed, 19 Oct 2016 13:50:08 -0400 Received: from mga14.intel.com ([192.55.52.115]:35789 "EHLO mga14.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S932361AbcJSRuH (ORCPT ); Wed, 19 Oct 2016 13:50:07 -0400 X-ExtLoop1: 1 X-IronPort-AV: E=Sophos;i="5.31,367,1473145200"; d="scan'208";a="21438242" From: Andi Kleen To: acme@kernel.org Cc: jolsa@kernel.org, linux-kernel@vger.kernel.org, mingo@kernel.org, Andi Kleen Subject: [PATCH 2/2] perf, tools, list: Support matching by topic Date: Wed, 19 Oct 2016 10:50:02 -0700 Message-Id: <1476899402-31460-2-git-send-email-andi@firstfloor.org> X-Mailer: git-send-email 2.5.5 In-Reply-To: <1476899402-31460-1-git-send-email-andi@firstfloor.org> References: <1476899402-31460-1-git-send-email-andi@firstfloor.org> Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Andi Kleen Add support in perf list topic to only show events belonging to a specific vendor events topic. For example the following works now: % perf list frontend List of pre-defined events (to be used in -e): stalled-cycles-frontend OR idle-cycles-frontend [Hardware event] stalled-cycles-frontend OR cpu/stalled-cycles-frontend/ [Kernel PMU event] frontend: dsb2mite_switches.count [Decode Stream Buffer (DSB)-to-MITE switches] dsb2mite_switches.penalty_cycles [Decode Stream Buffer (DSB)-to-MITE switch true penalty cycles] dsb_fill.exceed_dsb_lines [Cycles when Decode Stream Buffer (DSB) fill encounter more than 3 Decode Stream Buffer (DSB) lines] icache.hit [Number of Instruction Cache, Streaming Buffer and Victim Cache Reads. both cacheable and noncacheable, including UC fetches] ... Signed-off-by: Andi Kleen --- tools/perf/builtin-list.c | 6 ++++-- tools/perf/util/pmu.c | 4 +++- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/tools/perf/builtin-list.c b/tools/perf/builtin-list.c index 1095a6dada66..c00b0eb343c0 100644 --- a/tools/perf/builtin-list.c +++ b/tools/perf/builtin-list.c @@ -67,9 +67,11 @@ int cmd_list(int argc, const char **argv, const char *prefix __maybe_unused) print_symbol_events(NULL, PERF_TYPE_SOFTWARE, event_symbols_sw, PERF_COUNT_SW_MAX, raw_dump); else if (strcmp(argv[i], "cache") == 0 || - strcmp(argv[i], "hwcache") == 0) + strcmp(argv[i], "hwcache") == 0) { print_hwcache_events(NULL, raw_dump); - else if (strcmp(argv[i], "pmu") == 0) + print_pmu_events(argv[i], raw_dump, !desc_flag, + long_desc_flag, true); + } else if (strcmp(argv[i], "pmu") == 0) print_pmu_events(NULL, raw_dump, !desc_flag, long_desc_flag, false); else if (strcmp(argv[i], "sdt") == 0) diff --git a/tools/perf/util/pmu.c b/tools/perf/util/pmu.c index 101922b2a243..dc8eb30e8597 100644 --- a/tools/perf/util/pmu.c +++ b/tools/perf/util/pmu.c @@ -1142,7 +1142,9 @@ void print_pmu_events(const char *event_glob, bool name_only, bool quiet_flag, if (event_glob != NULL && !(strglobmatch_nocase(name, event_glob) || (!is_cpu && strglobmatch_nocase(alias->name, - event_glob)))) + event_glob)) || + (alias->topic && + strglobmatch_nocase(alias->topic, event_glob)))) continue; if (is_cpu && !name_only && !alias->desc) -- 2.5.5