perf mem: Move the mem_operations global to struct perf_mem
authorArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 17 Dec 2014 16:53:27 +0000 (13:53 -0300)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Wed, 21 Jan 2015 16:24:31 +0000 (13:24 -0300)
Just like the other parameters, grouping it on the builtin-mem specific
config area: struct perf_mem.

Acked-by: Stephane 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: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/builtin-mem.c

index 1eded0a3a509fd0b014b270bc2bdc8ab7dbe0a7d..9b5663950a4dd1b11573f9c10da92ac229bbb2f4 100644 (file)
 #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