diff options
author | Namhyung Kim <namhyung.kim@lge.com> | 2012-10-05 01:02:13 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2012-10-05 11:47:54 -0400 |
commit | 32caf0d1fe14eb69191e7828701e381b1edb340d (patch) | |
tree | 23e13455f8a30d4edb198f0dd3dcb09cc0418153 /tools/perf | |
parent | 139c0815903de1a7865fe1d6beac5e995fefdf46 (diff) |
perf trace: Validate target task/user/cpu argument
Those target options are mutually exclusive so check it before setting
up target thread/cpu maps.
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1349413336-26936-2-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf')
-rw-r--r-- | tools/perf/builtin-trace.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/tools/perf/builtin-trace.c b/tools/perf/builtin-trace.c index dec8ced61fb..f01fa6f736e 100644 --- a/tools/perf/builtin-trace.c +++ b/tools/perf/builtin-trace.c | |||
@@ -323,14 +323,21 @@ int cmd_trace(int argc, const char **argv, const char *prefix __maybe_unused) | |||
323 | OPT_END() | 323 | OPT_END() |
324 | }; | 324 | }; |
325 | int err; | 325 | int err; |
326 | char bf[BUFSIZ]; | ||
326 | 327 | ||
327 | argc = parse_options(argc, argv, trace_options, trace_usage, 0); | 328 | argc = parse_options(argc, argv, trace_options, trace_usage, 0); |
328 | if (argc) | 329 | if (argc) |
329 | usage_with_options(trace_usage, trace_options); | 330 | usage_with_options(trace_usage, trace_options); |
330 | 331 | ||
332 | err = perf_target__validate(&trace.opts.target); | ||
333 | if (err) { | ||
334 | perf_target__strerror(&trace.opts.target, err, bf, sizeof(bf)); | ||
335 | printf("%s", bf); | ||
336 | return err; | ||
337 | } | ||
338 | |||
331 | err = perf_target__parse_uid(&trace.opts.target); | 339 | err = perf_target__parse_uid(&trace.opts.target); |
332 | if (err) { | 340 | if (err) { |
333 | char bf[BUFSIZ]; | ||
334 | perf_target__strerror(&trace.opts.target, err, bf, sizeof(bf)); | 341 | perf_target__strerror(&trace.opts.target, err, bf, sizeof(bf)); |
335 | printf("%s", bf); | 342 | printf("%s", bf); |
336 | return err; | 343 | return err; |