aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/builtin-mem.c
diff options
context:
space:
mode:
Diffstat (limited to 'tools/perf/builtin-mem.c')
-rw-r--r--tools/perf/builtin-mem.c11
1 files changed, 10 insertions, 1 deletions
diff --git a/tools/perf/builtin-mem.c b/tools/perf/builtin-mem.c
index 85db3be4b3cb..1dc140c5481d 100644
--- a/tools/perf/builtin-mem.c
+++ b/tools/perf/builtin-mem.c
@@ -62,19 +62,22 @@ static int __cmd_record(int argc, const char **argv, struct perf_mem *mem)
62 int rec_argc, i = 0, j; 62 int rec_argc, i = 0, j;
63 const char **rec_argv; 63 const char **rec_argv;
64 int ret; 64 int ret;
65 bool all_user = false, all_kernel = false;
65 struct option options[] = { 66 struct option options[] = {
66 OPT_CALLBACK('e', "event", &mem, "event", 67 OPT_CALLBACK('e', "event", &mem, "event",
67 "event selector. use 'perf mem record -e list' to list available events", 68 "event selector. use 'perf mem record -e list' to list available events",
68 parse_record_events), 69 parse_record_events),
69 OPT_INCR('v', "verbose", &verbose, 70 OPT_INCR('v', "verbose", &verbose,
70 "be more verbose (show counter open errors, etc)"), 71 "be more verbose (show counter open errors, etc)"),
72 OPT_BOOLEAN('U', "--all-user", &all_user, "collect only user level data"),
73 OPT_BOOLEAN('K', "--all-kernel", &all_kernel, "collect only kernel level data"),
71 OPT_END() 74 OPT_END()
72 }; 75 };
73 76
74 argc = parse_options(argc, argv, options, record_mem_usage, 77 argc = parse_options(argc, argv, options, record_mem_usage,
75 PARSE_OPT_STOP_AT_NON_OPTION); 78 PARSE_OPT_STOP_AT_NON_OPTION);
76 79
77 rec_argc = argc + 7; /* max number of arguments */ 80 rec_argc = argc + 9; /* max number of arguments */
78 rec_argv = calloc(rec_argc + 1, sizeof(char *)); 81 rec_argv = calloc(rec_argc + 1, sizeof(char *));
79 if (!rec_argv) 82 if (!rec_argv)
80 return -1; 83 return -1;
@@ -103,6 +106,12 @@ static int __cmd_record(int argc, const char **argv, struct perf_mem *mem)
103 rec_argv[i++] = perf_mem_events__name(j); 106 rec_argv[i++] = perf_mem_events__name(j);
104 }; 107 };
105 108
109 if (all_user)
110 rec_argv[i++] = "--all-user";
111
112 if (all_kernel)
113 rec_argv[i++] = "--all-kernel";
114
106 for (j = 0; j < argc; j++, i++) 115 for (j = 0; j < argc; j++, i++)
107 rec_argv[i] = argv[j]; 116 rec_argv[i] = argv[j];
108 117