Thread (1 message) 1 message, 1 author, 2020-03-24

Re: [PATCH v5] perf tools: add support for libpfm4

From: Jiri Olsa <hidden>
Date: 2020-03-24 10:25:32
Also in: bpf, lkml, netdev

Possibly related (same subject, not in this thread)

On Mon, Mar 23, 2020 at 04:58:46PM -0700, Ian Rogers wrote:

SNIP
quoted hunk
diff --git a/tools/perf/util/parse-events.c b/tools/perf/util/parse-events.c
index 10107747b361..31ed184566c8 100644
--- a/tools/perf/util/parse-events.c
+++ b/tools/perf/util/parse-events.c
@@ -37,6 +37,11 @@
 #include "util/evsel_config.h"
 #include "util/event.h"
 
+#ifdef HAVE_LIBPFM
+#include <perfmon/pfmlib_perf_event.h>
+static void print_libpfm_events(bool name_only);
+#endif
+
 #define MAX_NAME_LEN 100
 
 #ifdef PARSER_DEBUG
@@ -2794,6 +2799,10 @@ void print_events(const char *event_glob, bool name_only, bool quiet_flag,
 	print_sdt_events(NULL, NULL, name_only);
 
 	metricgroup__print(true, true, NULL, name_only, details_flag);
+
+#ifdef HAVE_LIBPFM
+	print_libpfm_events(name_only);

we should make some effort to fit this into our current list shape,
currently it looks like:

	$ perf list
	...

	TopdownL1_SMT:
	  Backend_Bound_SMT
	       [This category represents fraction of slots where no uops are being delivered due to a lack of required resources for accepting new uops in the Backend>
	  Bad_Speculation_SMT
	       [This category represents fraction of slots wasted due to incorrect speculations. SMT version; use when SMT is enabled and measuring per logical CPU]
	  Frontend_Bound_SMT
	       [This category represents fraction of slots where the processor's Frontend undersupplies its Backend. SMT version; use when SMT is enabled and measurin>
	  Retiring_SMT
	       [This category represents fraction of slots utilized by useful work i.e. issued uops that eventually get retired. SMT version; use when SMT is enabled >


	Name  : UNHALTED_CORE_CYCLES
	PMU   : ix86arch
	Desc  : count core clock cycles whenever the clock signal on the specific core is running (not halted)
	Equiv : None
	Code  : 0x3c
	Modif : PMU: [e] : edge level (may require counter-mask >= 1) (boolean)
	Modif : PMU: [i] : invert (boolean)
	Modif : PMU: [c] : counter-mask in range [0-255] (integer)
	Modif : PMU: [t] : measure any thread (boolean)
	Modif : PMU: [intx] : monitor only inside transactional memory region (boolean)
	Modif : PMU: [intxcp] : do not count occurrences inside aborted transactional memory region (boolean)
	Modif : perf_event: [u] : monitor at user level (boolean)
	Modif : perf_event: [k] : monitor at kernel level (boolean)
	Modif : perf_event: [period] : sampling period (integer)
	Modif : perf_event: [freq] : sampling frequency (Hz) (integer)
	Modif : perf_event: [excl] : exclusive access (boolean)
	Modif : perf_event: [mg] : monitor guest execution (boolean)
	Modif : perf_event: [mh] : monitor host execution (boolean)
	Modif : perf_event: [cpu] : CPU to program (integer)
	Modif : perf_event: [pinned] : pin event to counters (boolean)

it needs some header like 'libpfm events:' and then
probably just name and doc for basic list and more
verbose for -v

jirka
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help