diff options
author | Namhyung Kim <namhyung.kim@lge.com> | 2012-04-26 01:15:18 -0400 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2012-05-02 14:22:08 -0400 |
commit | 4bd0f2d2c0cf14de9c84c2fe689120c6b0f667c8 (patch) | |
tree | d663fdacac1c3d0dd2c75f939fddbe63d2aa86ba /tools/perf/builtin-top.c | |
parent | fe9d18a71d2018f8021fd2bd2aaf5137954ef839 (diff) |
perf tools: Introduce perf_target__validate() helper
The perf_target__validate function is used to check given PID/TID/UID/CPU
target options and warn if some combination is impossible. Also this can
make some arguments of parse_target_uid() function useless as it is checked
before the call via our new helper.
Signed-off-by: Namhyung Kim <namhyung.kim@lge.com>
Reviewed-by: David Ahern <dsahern@gmail.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1335417327-11796-5-git-send-email-namhyung.kim@lge.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/builtin-top.c')
-rw-r--r-- | tools/perf/builtin-top.c | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c index 2c1c207627b4..4f47952eddbd 100644 --- a/tools/perf/builtin-top.c +++ b/tools/perf/builtin-top.c | |||
@@ -1252,21 +1252,12 @@ int cmd_top(int argc, const char **argv, const char *prefix __used) | |||
1252 | 1252 | ||
1253 | setup_browser(false); | 1253 | setup_browser(false); |
1254 | 1254 | ||
1255 | top.target.uid = parse_target_uid(top.target.uid_str, top.target.tid, | 1255 | perf_target__validate(&top.target); |
1256 | top.target.pid); | 1256 | |
1257 | top.target.uid = parse_target_uid(top.target.uid_str); | ||
1257 | if (top.target.uid_str != NULL && top.target.uid == UINT_MAX - 1) | 1258 | if (top.target.uid_str != NULL && top.target.uid == UINT_MAX - 1) |
1258 | goto out_delete_evlist; | 1259 | goto out_delete_evlist; |
1259 | 1260 | ||
1260 | /* CPU and PID are mutually exclusive */ | ||
1261 | if (top.target.tid && top.target.cpu_list) { | ||
1262 | printf("WARNING: PID switch overriding CPU\n"); | ||
1263 | sleep(1); | ||
1264 | top.target.cpu_list = NULL; | ||
1265 | } | ||
1266 | |||
1267 | if (top.target.pid) | ||
1268 | top.target.tid = top.target.pid; | ||
1269 | |||
1270 | if (perf_evlist__create_maps(top.evlist, top.target.pid, | 1261 | if (perf_evlist__create_maps(top.evlist, top.target.pid, |
1271 | top.target.tid, top.target.uid, | 1262 | top.target.tid, top.target.uid, |
1272 | top.target.cpu_list) < 0) | 1263 | top.target.cpu_list) < 0) |