aboutsummaryrefslogtreecommitdiffstats
path: root/tools/perf/util/target.c
diff options
context:
space:
mode:
authorNamhyung Kim <namhyung.kim@lge.com>2012-04-26 01:15:22 -0400
committerArnaldo Carvalho de Melo <acme@redhat.com>2012-05-02 14:41:11 -0400
commit12864b31583bcbd26789ebe68c612688f9ee2e30 (patch)
tree3f83f14d6a22af42388c9e7ebdc5ac5ea41b01cc /tools/perf/util/target.c
parent770a34a38b74982724dbb099225944b415f90281 (diff)
perf target: Split out perf_target handling code
For further work on perf_target, it'd be better off splitting the code into a separate file. 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-9-git-send-email-namhyung.kim@lge.com [ committer note: Fixed perl build by using stdbool and types.h in target.h ] Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
Diffstat (limited to 'tools/perf/util/target.c')
-rw-r--r--tools/perf/util/target.c45
1 files changed, 45 insertions, 0 deletions
diff --git a/tools/perf/util/target.c b/tools/perf/util/target.c
new file mode 100644
index 000000000000..3fadf85dd7e3
--- /dev/null
+++ b/tools/perf/util/target.c
@@ -0,0 +1,45 @@
1/*
2 * Helper functions for handling target threads/cpus
3 *
4 * Copyright (C) 2012, LG Electronics, Namhyung Kim <namhyung.kim@lge.com>
5 *
6 * Released under the GPL v2.
7 */
8
9#include "target.h"
10#include "debug.h"
11
12
13void perf_target__validate(struct perf_target *target)
14{
15 if (target->pid)
16 target->tid = target->pid;
17
18 /* CPU and PID are mutually exclusive */
19 if (target->tid && target->cpu_list) {
20 ui__warning("WARNING: PID switch overriding CPU\n");
21 sleep(1);
22 target->cpu_list = NULL;
23 }
24
25 /* UID and PID are mutually exclusive */
26 if (target->tid && target->uid_str) {
27 ui__warning("PID/TID switch overriding UID\n");
28 sleep(1);
29 target->uid_str = NULL;
30 }
31
32 /* UID and CPU are mutually exclusive */
33 if (target->uid_str && target->cpu_list) {
34 ui__warning("UID switch overriding CPU\n");
35 sleep(1);
36 target->cpu_list = NULL;
37 }
38
39 /* PID/UID and SYSTEM are mutually exclusive */
40 if ((target->tid || target->uid_str) && target->system_wide) {
41 ui__warning("PID/TID/UID switch overriding CPU\n");
42 sleep(1);
43 target->system_wide = false;
44 }
45}