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>
This commit is contained in:
Namhyung Kim
2012-04-26 14:15:18 +09:00
committed by Arnaldo Carvalho de Melo
parent fe9d18a71d
commit 4bd0f2d2c0
5 changed files with 31 additions and 29 deletions

View File

@@ -1252,21 +1252,12 @@ int cmd_top(int argc, const char **argv, const char *prefix __used)
setup_browser(false);
top.target.uid = parse_target_uid(top.target.uid_str, top.target.tid,
top.target.pid);
perf_target__validate(&top.target);
top.target.uid = parse_target_uid(top.target.uid_str);
if (top.target.uid_str != NULL && top.target.uid == UINT_MAX - 1)
goto out_delete_evlist;
/* CPU and PID are mutually exclusive */
if (top.target.tid && top.target.cpu_list) {
printf("WARNING: PID switch overriding CPU\n");
sleep(1);
top.target.cpu_list = NULL;
}
if (top.target.pid)
top.target.tid = top.target.pid;
if (perf_evlist__create_maps(top.evlist, top.target.pid,
top.target.tid, top.target.uid,
top.target.cpu_list) < 0)