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

Commit 66024122 authored by Arnaldo Carvalho de Melo's avatar Arnaldo Carvalho de Melo
Browse files

perf mem: Move the mem_operations global to struct perf_mem



Just like the other parameters, grouping it on the builtin-mem specific
config area: struct perf_mem.

Acked-by: default avatarStephane Eranian <eranian@google.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Don Zickus <dzickus@redhat.com>
Cc: Ingo Molnar <mingo@elte.hu>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Joe Mario <jmario@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Richard Fowles <rfowles@redhat.com>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-ad8ns5l51ongemfsir3zy09x@git.kernel.org


Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
parent 67121f85
Loading
Loading
Loading
Loading
+13 −13
Original line number Diff line number Diff line
@@ -10,21 +10,17 @@
#define MEM_OPERATION_LOAD	0x1
#define MEM_OPERATION_STORE	0x2

/*
 * default to both load an store sampling
 */
static int mem_operation = MEM_OPERATION_LOAD | MEM_OPERATION_STORE;

struct perf_mem {
	struct perf_tool	tool;
	char const		*input_name;
	bool			hide_unresolved;
	bool			dump_raw;
	int			operation;
	const char		*cpu_list;
	DECLARE_BITMAP(cpu_bitmap, MAX_NR_CPUS);
};

static int __cmd_record(int argc, const char **argv)
static int __cmd_record(int argc, const char **argv, struct perf_mem *mem)
{
	int rec_argc, i = 0, j;
	const char **rec_argv;
@@ -37,17 +33,17 @@ static int __cmd_record(int argc, const char **argv)

	rec_argv[i++] = "record";

	if (mem_operation & MEM_OPERATION_LOAD)
	if (mem->operation & MEM_OPERATION_LOAD)
		rec_argv[i++] = "-W";

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

	if (mem_operation & MEM_OPERATION_LOAD) {
	if (mem->operation & MEM_OPERATION_LOAD) {
		rec_argv[i++] = "-e";
		rec_argv[i++] = "cpu/mem-loads/pp";
	}

	if (mem_operation & MEM_OPERATION_STORE) {
	if (mem->operation & MEM_OPERATION_STORE) {
		rec_argv[i++] = "-e";
		rec_argv[i++] = "cpu/mem-stores/pp";
	}
@@ -177,7 +173,7 @@ static int report_events(int argc, const char **argv, struct perf_mem *mem)
	 * there is no weight (cost) associated with stores, so don't print
	 * the column
	 */
	if (!(mem_operation & MEM_OPERATION_LOAD))
	if (!(mem->operation & MEM_OPERATION_LOAD))
		rep_argv[i++] = "--sort=mem,sym,dso,symbol_daddr,"
				"dso_daddr,tlb,locked";

@@ -273,9 +269,13 @@ int cmd_mem(int argc, const char **argv, const char *prefix __maybe_unused)
			.ordered_events	= true,
		},
		.input_name		 = "perf.data",
		/*
		 * default to both load an store sampling
		 */
		.operation		 = MEM_OPERATION_LOAD | MEM_OPERATION_STORE,
	};
	const struct option mem_options[] = {
	OPT_CALLBACK('t', "type", &mem_operation,
	OPT_CALLBACK('t', "type", &mem.operation,
		   "type", "memory operations(load,store) Default load,store",
		    parse_mem_ops),
	OPT_BOOLEAN('D', "dump-raw-samples", &mem.dump_raw,
@@ -302,7 +302,7 @@ int cmd_mem(int argc, const char **argv, const char *prefix __maybe_unused)
	argc = parse_options_subcommand(argc, argv, mem_options, mem_subcommands,
					mem_usage, PARSE_OPT_STOP_AT_NON_OPTION);

	if (!argc || !(strncmp(argv[0], "rec", 3) || mem_operation))
	if (!argc || !(strncmp(argv[0], "rec", 3) || mem.operation))
		usage_with_options(mem_usage, mem_options);

	if (!mem.input_name || !strlen(mem.input_name)) {
@@ -313,7 +313,7 @@ int cmd_mem(int argc, const char **argv, const char *prefix __maybe_unused)
	}

	if (!strncmp(argv[0], "rec", 3))
		return __cmd_record(argc, argv);
		return __cmd_record(argc, argv, &mem);
	else if (!strncmp(argv[0], "rep", 3))
		return report_events(argc, argv, &mem);
	else