[PATCH 06/11] perf tools: Check more combinations of PID/TID, UID and CPU switches

From: Namhyung Kim
Date: Mon Feb 13 2012 - 02:14:08 EST


There were some combinations of these switches that are not so
appropriate IMHO. Since there are implicit priorities between
them, they worked well anyway, but end up opening useless
duplicated events. For example, 'perf stat -t <pid> -a' will
open multiple events for the thread instead of one.

Add explicit checks and warn user in check_target_maps().

Signed-off-by: Namhyung Kim <namhyung.kim@xxxxxxx>
---
tools/perf/util/usage.c | 13 +++++++++++++
1 files changed, 13 insertions(+), 0 deletions(-)

diff --git a/tools/perf/util/usage.c b/tools/perf/util/usage.c
index d235013600e5..08423c037a7e 100644
--- a/tools/perf/util/usage.c
+++ b/tools/perf/util/usage.c
@@ -133,4 +133,17 @@ void check_target_maps(struct perf_maps_opts *maps)
maps->uid_str = NULL;
}

+ /* UID and CPU are mutually exclusive */
+ if (maps->uid_str && maps->cpu_list) {
+ ui__warning("UID switch overriding CPU\n");
+ sleep(1);
+ maps->cpu_list = NULL;
+ }
+
+ /* PID/UID and SYSTEM are mutually exclusive */
+ if ((maps->target_tid > 0 || maps->uid_str) && maps->system_wide) {
+ ui__warning("PID/TID/UID switch overriding CPU\n");
+ sleep(1);
+ maps->system_wide = false;
+ }
}
--
1.7.9

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/