Browse Source

perf mem: Introduce perf_mem_events__name function

Wrap perf_mem_events[].name into perf_mem_events__name() so we could alter the
events name if needed.

This will be handy when changing latency settings for loads event in following
patch.

Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1456303616-26926-3-git-send-email-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Jiri Olsa 9 years ago
parent
commit
2ba7ac5814
3 changed files with 9 additions and 3 deletions
  1. 3 3
      tools/perf/builtin-mem.c
  2. 5 0
      tools/perf/util/mem-events.c
  3. 1 0
      tools/perf/util/mem-events.h

+ 3 - 3
tools/perf/builtin-mem.c

@@ -43,7 +43,7 @@ static int parse_record_events(const struct option *opt,
 		fprintf(stderr, "%-13s%-*s%s\n",
 		fprintf(stderr, "%-13s%-*s%s\n",
 			e->tag,
 			e->tag,
 			verbose ? 25 : 0,
 			verbose ? 25 : 0,
-			verbose ? e->name : "",
+			verbose ? perf_mem_events__name(j) : "",
 			e->supported ? ": available" : "");
 			e->supported ? ": available" : "");
 	}
 	}
 	exit(0);
 	exit(0);
@@ -95,12 +95,12 @@ static int __cmd_record(int argc, const char **argv, struct perf_mem *mem)
 
 
 		if (!perf_mem_events[j].supported) {
 		if (!perf_mem_events[j].supported) {
 			pr_err("failed: event '%s' not supported\n",
 			pr_err("failed: event '%s' not supported\n",
-			       perf_mem_events[j].name);
+			       perf_mem_events__name(j));
 			return -1;
 			return -1;
 		}
 		}
 
 
 		rec_argv[i++] = "-e";
 		rec_argv[i++] = "-e";
-		rec_argv[i++] = perf_mem_events[j].name;
+		rec_argv[i++] = perf_mem_events__name(j);
 	};
 	};
 
 
 	for (j = 0; j < argc; j++, i++)
 	for (j = 0; j < argc; j++, i++)

+ 5 - 0
tools/perf/util/mem-events.c

@@ -19,6 +19,11 @@ struct perf_mem_event perf_mem_events[PERF_MEM_EVENTS__MAX] = {
 
 
 #undef E
 #undef E
 
 
+char *perf_mem_events__name(int i)
+{
+	return (char *)perf_mem_events[i].name;
+}
+
 int perf_mem_events__parse(const char *str)
 int perf_mem_events__parse(const char *str)
 {
 {
 	char *tok, *saveptr = NULL;
 	char *tok, *saveptr = NULL;

+ 1 - 0
tools/perf/util/mem-events.h

@@ -22,4 +22,5 @@ extern struct perf_mem_event perf_mem_events[PERF_MEM_EVENTS__MAX];
 int perf_mem_events__parse(const char *str);
 int perf_mem_events__parse(const char *str);
 int perf_mem_events__init(void);
 int perf_mem_events__init(void);
 
 
+char *perf_mem_events__name(int i);
 #endif /* __PERF_MEM_EVENTS_H */
 #endif /* __PERF_MEM_EVENTS_H */