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

Commit acbe613e authored by Jiri Olsa's avatar Jiri Olsa Committed by Arnaldo Carvalho de Melo
Browse files

perf tools: Add monitored events array



It will ease up configuration of memory events and addition of other
memory events in following patches.

Signed-off-by: default avatarJiri 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/1455525293-8671-5-git-send-email-jolsa@kernel.org


Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent d3927110
Loading
Loading
Loading
Loading
+9 −8
Original line number Diff line number Diff line
@@ -6,6 +6,7 @@
#include "util/tool.h"
#include "util/session.h"
#include "util/data.h"
#include "util/mem-events.h"

#define MEM_OPERATION_LOAD	0x1
#define MEM_OPERATION_STORE	0x2
@@ -34,20 +35,20 @@ static int __cmd_record(int argc, const char **argv, struct perf_mem *mem)

	rec_argv[i++] = "record";

	if (mem->operation & MEM_OPERATION_LOAD)
	if (mem->operation & MEM_OPERATION_LOAD) {
		perf_mem_events[PERF_MEM_EVENTS__LOAD].record = true;
		rec_argv[i++] = "-W";
	}

	rec_argv[i++] = "-d";

	if (mem->operation & MEM_OPERATION_LOAD) {
		rec_argv[i++] = "-e";
		rec_argv[i++] = "cpu/mem-loads/pp";
	}
	for (j = 0; j < PERF_MEM_EVENTS__MAX; j++) {
		if (!perf_mem_events[j].record)
			continue;

	if (mem->operation & MEM_OPERATION_STORE) {
		rec_argv[i++] = "-e";
		rec_argv[i++] = "cpu/mem-stores/pp";
	}
		rec_argv[i++] = perf_mem_events[j].name;
	};

	for (j = 1; j < argc; j++, i++)
		rec_argv[i] = argv[j];
+1 −0
Original line number Diff line number Diff line
@@ -82,6 +82,7 @@ libperf-y += parse-branch-options.o
libperf-y += parse-regs-options.o
libperf-y += term.o
libperf-y += help-unknown-cmd.o
libperf-y += mem-events.o

libperf-$(CONFIG_LIBBPF) += bpf-loader.o
libperf-$(CONFIG_BPF_PROLOGUE) += bpf-prologue.o
+10 −0
Original line number Diff line number Diff line
#include "mem-events.h"

#define E(n) { .name = n }

struct perf_mem_event perf_mem_events[PERF_MEM_EVENTS__MAX] = {
	E("cpu/mem-loads,ldlat=30/P"),
	E("cpu/mem-stores/P"),
};

#undef E
+19 −0
Original line number Diff line number Diff line
#ifndef __PERF_MEM_EVENTS_H
#define __PERF_MEM_EVENTS_H

#include <stdbool.h>

struct perf_mem_event {
	bool		record;
	const char	*name;
};

enum {
	PERF_MEM_EVENTS__LOAD,
	PERF_MEM_EVENTS__STORE,
	PERF_MEM_EVENTS__MAX,
};

extern struct perf_mem_event perf_mem_events[PERF_MEM_EVENTS__MAX];

#endif /* __PERF_MEM_EVENTS_H */