diff options
| author | Ingo Molnar <mingo@kernel.org> | 2014-12-08 05:50:24 -0500 |
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2014-12-08 05:50:24 -0500 |
| commit | 2a2662bf88e693d477ef08351d03934f7bc0b51c (patch) | |
| tree | cef243df159cc12ada7e97998a253df7c0abb2a2 /tools/perf/builtin-kvm.c | |
| parent | b2776bf7149bddd1f4161f14f79520f17fc1d71d (diff) | |
| parent | 36748b9518a2437beffe861b47dff6d12b736b3f (diff) | |
Merge branch 'perf/core-v3' of git://git.kernel.org/pub/scm/linux/kernel/git/frederic/linux-dynticks into perf/hw_breakpoints
Pull AMD range breakpoints support from Frederic Weisbecker:
" - Extend breakpoint tools and core to support address range through perf
event with initial backend support for AMD extended breakpoints.
Syntax is:
perf record -e mem:addr/len:type
For example set write breakpoint from 0x1000 to 0x1200 (0x1000 + 512)
perf record -e mem:0x1000/512:w
- Clean up a bit breakpoint code validation
It has been acked by Jiri and Oleg. "
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'tools/perf/builtin-kvm.c')
| -rw-r--r-- | tools/perf/builtin-kvm.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/tools/perf/builtin-kvm.c b/tools/perf/builtin-kvm.c index b65eb0507b38..3c0f3d4fb021 100644 --- a/tools/perf/builtin-kvm.c +++ b/tools/perf/builtin-kvm.c | |||
| @@ -1132,6 +1132,10 @@ kvm_events_record(struct perf_kvm_stat *kvm, int argc, const char **argv) | |||
| 1132 | "-m", "1024", | 1132 | "-m", "1024", |
| 1133 | "-c", "1", | 1133 | "-c", "1", |
| 1134 | }; | 1134 | }; |
| 1135 | const char * const kvm_stat_record_usage[] = { | ||
| 1136 | "perf kvm stat record [<options>]", | ||
| 1137 | NULL | ||
| 1138 | }; | ||
| 1135 | const char * const *events_tp; | 1139 | const char * const *events_tp; |
| 1136 | events_tp_size = 0; | 1140 | events_tp_size = 0; |
| 1137 | 1141 | ||
| @@ -1159,6 +1163,27 @@ kvm_events_record(struct perf_kvm_stat *kvm, int argc, const char **argv) | |||
| 1159 | for (j = 1; j < (unsigned int)argc; j++, i++) | 1163 | for (j = 1; j < (unsigned int)argc; j++, i++) |
| 1160 | rec_argv[i] = argv[j]; | 1164 | rec_argv[i] = argv[j]; |
| 1161 | 1165 | ||
| 1166 | set_option_flag(record_options, 'e', "event", PARSE_OPT_HIDDEN); | ||
| 1167 | set_option_flag(record_options, 0, "filter", PARSE_OPT_HIDDEN); | ||
| 1168 | set_option_flag(record_options, 'R', "raw-samples", PARSE_OPT_HIDDEN); | ||
| 1169 | |||
| 1170 | set_option_flag(record_options, 'F', "freq", PARSE_OPT_DISABLED); | ||
| 1171 | set_option_flag(record_options, 0, "group", PARSE_OPT_DISABLED); | ||
| 1172 | set_option_flag(record_options, 'g', NULL, PARSE_OPT_DISABLED); | ||
| 1173 | set_option_flag(record_options, 0, "call-graph", PARSE_OPT_DISABLED); | ||
| 1174 | set_option_flag(record_options, 'd', "data", PARSE_OPT_DISABLED); | ||
| 1175 | set_option_flag(record_options, 'T', "timestamp", PARSE_OPT_DISABLED); | ||
| 1176 | set_option_flag(record_options, 'P', "period", PARSE_OPT_DISABLED); | ||
| 1177 | set_option_flag(record_options, 'n', "no-samples", PARSE_OPT_DISABLED); | ||
| 1178 | set_option_flag(record_options, 'N', "no-buildid-cache", PARSE_OPT_DISABLED); | ||
| 1179 | set_option_flag(record_options, 'B', "no-buildid", PARSE_OPT_DISABLED); | ||
| 1180 | set_option_flag(record_options, 'G', "cgroup", PARSE_OPT_DISABLED); | ||
| 1181 | set_option_flag(record_options, 'b', "branch-any", PARSE_OPT_DISABLED); | ||
| 1182 | set_option_flag(record_options, 'j', "branch-filter", PARSE_OPT_DISABLED); | ||
| 1183 | set_option_flag(record_options, 'W', "weight", PARSE_OPT_DISABLED); | ||
| 1184 | set_option_flag(record_options, 0, "transaction", PARSE_OPT_DISABLED); | ||
| 1185 | |||
| 1186 | record_usage = kvm_stat_record_usage; | ||
| 1162 | return cmd_record(i, rec_argv, NULL); | 1187 | return cmd_record(i, rec_argv, NULL); |
| 1163 | } | 1188 | } |
| 1164 | 1189 | ||
