lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:   Wed, 19 Oct 2016 10:50:02 -0700
From:   Andi Kleen <andi@...stfloor.org>
To:     acme@...nel.org
Cc:     jolsa@...nel.org, linux-kernel@...r.kernel.org, mingo@...nel.org,
        Andi Kleen <ak@...ux.intel.com>
Subject: [PATCH 2/2] perf, tools, list: Support matching by topic

From: Andi Kleen <ak@...ux.intel.com>

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 <ak@...ux.intel.com>
---
 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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ