diff options
Diffstat (limited to 'tools/perf/builtin-mem.c')
-rw-r--r-- | tools/perf/builtin-mem.c | 11 |
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 | ||