Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 1c5f01fe authored by Andi Kleen's avatar Andi Kleen Committed by Arnaldo Carvalho de Melo
Browse files

perf list: Add a --no-desc flag



Add a --no-desc flag to 'perf list' to not print the event descriptions
that were earlier added for JSON events. This may be useful to get a
less crowded listing.

It's still default to print descriptions as that is the more useful
default for most users.

Signed-off-by: default avatarAndi Kleen <ak@linux.intel.com>
Signed-off-by: default avatarSukadev Bhattiprolu <sukadev@linux.vnet.ibm.com>
Acked-by: default avatarIngo Molnar <mingo@kernel.org>
Acked-by: default avatarJiri Olsa <jolsa@redhat.com>
Tested-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
Cc: linuxppc-dev@lists.ozlabs.org
Cc: Madhavan Srinivasan <maddy@linux.vnet.ibm.com>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1473978296-20712-9-git-send-email-sukadev@linux.vnet.ibm.com


Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 61eb2eb4
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -8,13 +8,19 @@ perf-list - List all symbolic event types
SYNOPSIS
--------
[verse]
'perf list' [hw|sw|cache|tracepoint|pmu|event_glob]
'perf list' [--no-desc] [hw|sw|cache|tracepoint|pmu|event_glob]

DESCRIPTION
-----------
This command displays the symbolic event types which can be selected in the
various perf commands with the -e option.

OPTIONS
-------
--no-desc::
Don't print descriptions.


[[EVENT_MODIFIERS]]
EVENT MODIFIERS
---------------
+9 −5
Original line number Diff line number Diff line
@@ -16,16 +16,20 @@
#include "util/pmu.h"
#include <subcmd/parse-options.h>

static bool desc_flag = true;

int cmd_list(int argc, const char **argv, const char *prefix __maybe_unused)
{
	int i;
	bool raw_dump = false;
	struct option list_options[] = {
		OPT_BOOLEAN(0, "raw-dump", &raw_dump, "Dump raw events"),
		OPT_BOOLEAN('d', "desc", &desc_flag,
			    "Print extra event descriptions. --no-desc to not print."),
		OPT_END()
	};
	const char * const list_usage[] = {
		"perf list [hw|sw|cache|tracepoint|pmu|sdt|event_glob]",
		"perf list [--no-desc] [hw|sw|cache|tracepoint|pmu|sdt|event_glob]",
		NULL
	};

@@ -40,7 +44,7 @@ int cmd_list(int argc, const char **argv, const char *prefix __maybe_unused)
		printf("\nList of pre-defined events (to be used in -e):\n\n");

	if (argc == 0) {
		print_events(NULL, raw_dump);
		print_events(NULL, raw_dump, !desc_flag);
		return 0;
	}

@@ -61,14 +65,14 @@ int cmd_list(int argc, const char **argv, const char *prefix __maybe_unused)
			 strcmp(argv[i], "hwcache") == 0)
			print_hwcache_events(NULL, raw_dump);
		else if (strcmp(argv[i], "pmu") == 0)
			print_pmu_events(NULL, raw_dump);
			print_pmu_events(NULL, raw_dump, !desc_flag);
		else if (strcmp(argv[i], "sdt") == 0)
			print_sdt_events(NULL, NULL, raw_dump);
		else if ((sep = strchr(argv[i], ':')) != NULL) {
			int sep_idx;

			if (sep == NULL) {
				print_events(argv[i], raw_dump);
				print_events(argv[i], raw_dump, !desc_flag);
				continue;
			}
			sep_idx = sep - argv[i];
@@ -90,7 +94,7 @@ int cmd_list(int argc, const char **argv, const char *prefix __maybe_unused)
			print_symbol_events(s, PERF_TYPE_SOFTWARE,
					    event_symbols_sw, PERF_COUNT_SW_MAX, raw_dump);
			print_hwcache_events(s, raw_dump);
			print_pmu_events(s, raw_dump);
			print_pmu_events(s, raw_dump, !desc_flag);
			print_tracepoint_events(NULL, s, raw_dump);
			print_sdt_events(NULL, s, raw_dump);
			free(s);
+2 −2
Original line number Diff line number Diff line
@@ -2263,7 +2263,7 @@ void print_symbol_events(const char *event_glob, unsigned type,
/*
 * Print the help text for the event symbols:
 */
void print_events(const char *event_glob, bool name_only)
void print_events(const char *event_glob, bool name_only, bool quiet_flag)
{
	print_symbol_events(event_glob, PERF_TYPE_HARDWARE,
			    event_symbols_hw, PERF_COUNT_HW_MAX, name_only);
@@ -2273,7 +2273,7 @@ void print_events(const char *event_glob, bool name_only)

	print_hwcache_events(event_glob, name_only);

	print_pmu_events(event_glob, name_only);
	print_pmu_events(event_glob, name_only, quiet_flag);

	if (event_glob != NULL)
		return;
+1 −1
Original line number Diff line number Diff line
@@ -172,7 +172,7 @@ void parse_events_update_lists(struct list_head *list_event,
void parse_events_evlist_error(struct parse_events_evlist *data,
			       int idx, const char *str);

void print_events(const char *event_glob, bool name_only);
void print_events(const char *event_glob, bool name_only, bool quiet);

struct event_symbol {
	const char	*symbol;
+2 −2
Original line number Diff line number Diff line
@@ -1084,7 +1084,7 @@ static void wordwrap(char *s, int start, int max, int corr)
	}
}

void print_pmu_events(const char *event_glob, bool name_only)
void print_pmu_events(const char *event_glob, bool name_only, bool quiet_flag)
{
	struct perf_pmu *pmu;
	struct perf_pmu_alias *alias;
@@ -1151,7 +1151,7 @@ void print_pmu_events(const char *event_glob, bool name_only)
			printf("%s ", aliases[j].name);
			continue;
		}
		if (aliases[j].desc) {
		if (aliases[j].desc && !quiet_flag) {
			if (numdesc++ == 0)
				printf("\n");
			printf("  %-50s\n", aliases[j].name);
Loading