diff options
author | Adrian Hunter <adrian.hunter@intel.com> | 2013-11-15 08:52:29 -0500 |
---|---|---|
committer | Arnaldo Carvalho de Melo <acme@redhat.com> | 2013-11-27 12:58:36 -0500 |
commit | 3aa5939d71fa22a947808ba9c798b8537c35097a (patch) | |
tree | b127f8c885ade7568c24230d0c9e68a693877eae /tools/perf/util/target.c | |
parent | e944d3d7d151eea149c62310eaff7b92c7732f58 (diff) |
perf record: Make per-cpu mmaps the default.
This affects the -p, -t and -u options that previously defaulted to
per-thread mmaps.
Consequently add an option to select per-thread mmaps to support the old
behaviour.
Note that per-thread can be used with a workload-only (i.e. none of -p,
-t, -u, -a or -C is selected) to get a per-thread mmap with no
inheritance.
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Acked-by: Ingo Molnar <mingo@kernel.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Ingo Molnar <mingo@kernel.org>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/5286271D.3020808@intel.com
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.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/tools/perf/util/target.c b/tools/perf/util/target.c index 3c778a07b7cc..e74c5963dc7a 100644 --- a/tools/perf/util/target.c +++ b/tools/perf/util/target.c | |||
@@ -55,6 +55,13 @@ enum target_errno target__validate(struct target *target) | |||
55 | ret = TARGET_ERRNO__UID_OVERRIDE_SYSTEM; | 55 | ret = TARGET_ERRNO__UID_OVERRIDE_SYSTEM; |
56 | } | 56 | } |
57 | 57 | ||
58 | /* THREAD and SYSTEM/CPU are mutually exclusive */ | ||
59 | if (target->per_thread && (target->system_wide || target->cpu_list)) { | ||
60 | target->per_thread = false; | ||
61 | if (ret == TARGET_ERRNO__SUCCESS) | ||
62 | ret = TARGET_ERRNO__SYSTEM_OVERRIDE_THREAD; | ||
63 | } | ||
64 | |||
58 | return ret; | 65 | return ret; |
59 | } | 66 | } |
60 | 67 | ||
@@ -100,6 +107,7 @@ static const char *target__error_str[] = { | |||
100 | "UID switch overriding CPU", | 107 | "UID switch overriding CPU", |
101 | "PID/TID switch overriding SYSTEM", | 108 | "PID/TID switch overriding SYSTEM", |
102 | "UID switch overriding SYSTEM", | 109 | "UID switch overriding SYSTEM", |
110 | "SYSTEM/CPU switch overriding PER-THREAD", | ||
103 | "Invalid User: %s", | 111 | "Invalid User: %s", |
104 | "Problems obtaining information for user %s", | 112 | "Problems obtaining information for user %s", |
105 | }; | 113 | }; |
@@ -131,7 +139,8 @@ int target__strerror(struct target *target, int errnum, | |||
131 | msg = target__error_str[idx]; | 139 | msg = target__error_str[idx]; |
132 | 140 | ||
133 | switch (errnum) { | 141 | switch (errnum) { |
134 | case TARGET_ERRNO__PID_OVERRIDE_CPU ... TARGET_ERRNO__UID_OVERRIDE_SYSTEM: | 142 | case TARGET_ERRNO__PID_OVERRIDE_CPU ... |
143 | TARGET_ERRNO__SYSTEM_OVERRIDE_THREAD: | ||
135 | snprintf(buf, buflen, "%s", msg); | 144 | snprintf(buf, buflen, "%s", msg); |
136 | break; | 145 | break; |
137 | 146 | ||